summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Schweer <ws.seh.de>2006-11-21 20:50:31 +0000
committerWerner Schweer <ws.seh.de>2006-11-21 20:50:31 +0000
commitc3ef23511b3a6324e991554b51d0e3f864368ac4 (patch)
tree9c7bc1aff3ab6cc452049962932f2646a2bb28bd
parent532937985c8afe35a5e5f07e3f025c34692a1f1b (diff)
fixed DSSI support
-rw-r--r--muse/CMakeLists.txt12
-rw-r--r--muse/ChangeLog2
-rw-r--r--muse/muse/CMakeLists.txt3
-rw-r--r--muse/muse/dssihost.cpp56
-rw-r--r--muse/muse/dssihost.h1
-rw-r--r--muse/muse/icons.cpp27
-rw-r--r--muse/muse/icons.h5
-rw-r--r--muse/muse/midiplugin.cpp4
-rw-r--r--muse/muse/miditrack.cpp2
-rw-r--r--muse/muse/miditrackbase.cpp29
-rw-r--r--muse/muse/muse.cpp1
-rw-r--r--muse/muse/seqmsg.cpp5
-rw-r--r--muse/muse/synth.h1
-rw-r--r--muse/muse/xpm/automation_clear_data.xpm22
-rw-r--r--muse/muse/xpm/automation_mixer.xpm35
-rw-r--r--muse/muse/xpm/automation_take_snapshot.xpm144
-rw-r--r--muse/muse/xpm/midi_inputplugins.xpm33
-rw-r--r--muse/muse/xpm/midi_inputplugins_midi_input_filter.xpm98
-rw-r--r--muse/muse/xpm/midi_inputplugins_midi_input_transform.xpm31
-rw-r--r--muse/muse/xpm/midi_inputplugins_random_rhythm_generator.xpm67
-rw-r--r--muse/muse/xpm/midi_inputplugins_remote_control.xpm64
-rw-r--r--muse/muse/xpm/midi_inputplugins_transpose.xpm30
-rw-r--r--muse/muse/xpm/mustangS.xpm23
23 files changed, 71 insertions, 624 deletions
diff --git a/muse/CMakeLists.txt b/muse/CMakeLists.txt
index 19beacb1..e921104b 100644
--- a/muse/CMakeLists.txt
+++ b/muse/CMakeLists.txt
@@ -190,7 +190,15 @@ if ( ENABLE_DSSI )
message("Error: dssi >= 0.9.0 not found, disabling feature")
set ( ENABLE_DSSI OFF )
else (NOT DSSI_INCDIR)
- message("DSSI detected.")
+ message("DSSI detected.")
+ PKGCONFIG (liblo 0.23 LIBLO_INCDIR LIBLO_LIBDIR LIBLO_LIB LIBLO_CPP )
+ if (NOT LIBLO_INCDIR)
+ message("Error: liblo >= 0.23 not found, disabling DSSI")
+ set ( ENABLE_DSSI OFF )
+ else (NOT LIBLO_INCDIR)
+ message("liblo >= 0.23 detected.")
+ set (DSSI_SUPPORT TRUE)
+ endif (NOT LIBLO_INCDIR)
endif (NOT DSSI_INCDIR)
endif ( ENABLE_DSSI )
@@ -305,6 +313,8 @@ include_directories(
${JACK_INCDIR}
${SNDFILE_INCDIR}
${SAMPLERATE_INCDIR}
+ ${LIBLO_INCDIR}
+ ${DSSI_INCDIR}
)
#
diff --git a/muse/ChangeLog b/muse/ChangeLog
index 7fa43c42..35dc3741 100644
--- a/muse/ChangeLog
+++ b/muse/ChangeLog
@@ -1,3 +1,5 @@
+21.11 (ws)
+ - fixed DSSI support
21.11 (ng)
- add color gradient to meterslider
- update miditracker (not working yet)
diff --git a/muse/muse/CMakeLists.txt b/muse/muse/CMakeLists.txt
index eabd5590..22518f7b 100644
--- a/muse/muse/CMakeLists.txt
+++ b/muse/muse/CMakeLists.txt
@@ -183,7 +183,8 @@ target_link_libraries(muse
${ALSA_LIB}
${JACK_LIB}
${SNDFILE_LIB}
- ${SAMPLERATE_LIB}
+ ${SAMPLERATE_LIB}
+ ${LIBLO_LIB}
)
install_targets ( /bin muse )
diff --git a/muse/muse/dssihost.cpp b/muse/muse/dssihost.cpp
index 85a7dba3..57d9e38f 100644
--- a/muse/muse/dssihost.cpp
+++ b/muse/muse/dssihost.cpp
@@ -35,6 +35,7 @@
#include "al/xml.h"
#include "song.h"
#include "midictrl.h"
+#include "ladspaplugin.h"
static lo_server_thread serverThread;
static char osc_path_tmp[1024];
@@ -116,7 +117,7 @@ int DssiSynthIF::oscUpdate(lo_arg **argv)
*/
lo_send(uiTarget, uiOscConfigurePath, "ss",
- DSSI_PROJECT_DIRECTORY_KEY, song->projectDirectory().toAscii().data());
+ DSSI_PROJECT_DIRECTORY_KEY, song->projectPath().toAscii().data());
#if 0
/* Send current bank/program (-FIX- another race...) */
@@ -236,7 +237,7 @@ static void scanDSSILib(const QFileInfo& fi)
static void scanDSSIDir(const QString& s)
{
if (debugMsg)
- printf("scan dssi plugin dir <%s>\n", s.toAscii().data());
+ printf("scan DSSI plugin dir <%s>\n", s.toAscii().data());
#ifdef __APPLE__
QDir pluginDir(s, QString("*.dylib"), QDir::Unsorted, QDir::Files);
@@ -263,6 +264,7 @@ void initDSSI()
if (dssiPath == 0)
dssiPath = "/usr/lib/dssi:/usr/local/lib/dssi";
+printf("INIT DSSI <%s>\n", dssiPath);
char* p = dssiPath;
while (*p != '\0') {
char* pe = p;
@@ -354,7 +356,7 @@ bool DssiSynthIF::init(DssiSynth* s)
}
if (dssi->configure) {
char *rv = dssi->configure(handle, DSSI_PROJECT_DIRECTORY_KEY,
- museProject.toAscii().data());
+ song->projectPath().toAscii().data());
if (rv)
fprintf(stderr, "MusE: Warning: plugin doesn't like project directory: \"%s\"\n", rv);
}
@@ -401,14 +403,18 @@ void DssiSynthIF::getData(MidiEventList* el, unsigned pos, int ch, unsigned samp
const DSSI_Descriptor* dssi = synth->dssi;
const LADSPA_Descriptor* descr = dssi->LADSPA_Plugin;
- unsigned long nevents = 0;
- for (iMidiEvent ii = i; ii != el->end(); ++ii, ++nevents)
- ;
+ unsigned long nevents = el->size();
+
+ while (!synti->putFifo.isEmpty()) {
+ MidiEvent event = synti->putFifo.get();
+ printf("Dssi: FIFO\n");
+ }
+
snd_seq_event_t events[nevents];
memset(events, 0, sizeof(events));
nevents = 0;
- int endPos = pos + samples;
+ unsigned endPos = pos + samples;
iMidiEvent i = el->begin();
for (; i != el->end(); ++i, ++nevents) {
if (i->time() >= endPos)
@@ -455,7 +461,6 @@ void DssiSynthIF::getData(MidiEventList* el, unsigned pos, int ch, unsigned samp
}
}
el->erase(el->begin(), i);
-
for (int k = 0; k < ch; ++k)
descr->connect_port(handle, synth->oIdx[k], data[k]);
@@ -718,31 +723,18 @@ int DssiSynthIF::oscExiting(lo_arg**)
// oscMidi
//---------------------------------------------------------
-int DssiSynthIF::oscMidi(lo_arg** /*argv*/)
+int DssiSynthIF::oscMidi(lo_arg** argv)
{
-printf("received oscMidi\n");
- MidiTrackList* tl = song->midis();
- for (iMidiTrack i = tl->begin(); i != tl->end(); ++i) {
-#if 0 //TD
- MidiTrack* t = *i;
- MidiChannel* mc = t->channel();
- MidiPort* port = &midiPorts[t->outPort()];
- MidiDevice* dev = port->device();
- if (dev == synti) {
- 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;
- }
- MidiEvent event(0, t->outPort(), t->outChannel(), a, b, c);
- // dev->recordEvent(event);
- audio->msgPlayMidiEvent(&event);
- break;
- }
-#endif
- }
+ int a = argv[0]->m[1];
+ int b = argv[0]->m[2];
+ int c = argv[0]->m[3];
+ if (a == ME_NOTEOFF) {
+ a = ME_NOTEON;
+ c = 0;
+ }
+ int channel = 0;
+ MidiEvent event(0, channel, a, b, c);
+ synti->playMidiEvent(&event);
return 0;
}
diff --git a/muse/muse/dssihost.h b/muse/muse/dssihost.h
index 47a15cd8..272448d5 100644
--- a/muse/muse/dssihost.h
+++ b/muse/muse/dssihost.h
@@ -27,6 +27,7 @@
struct _DSSI;
class DssiPluginIF;
+class LadspaPort;
//---------------------------------------------------------
// DssiSynth
diff --git a/muse/muse/icons.cpp b/muse/muse/icons.cpp
index 5fb5e42b..a5efb879 100644
--- a/muse/muse/icons.cpp
+++ b/muse/muse/icons.cpp
@@ -24,14 +24,10 @@
#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_remote_control.xpm"
+// #include "xpm/midi_inputplugins.xpm"
#include "xpm/midi_local_off.xpm"
#include "xpm/midi_reset_instr.xpm"
#include "xpm/settings_appearance_settings.xpm"
@@ -103,7 +99,7 @@
#include "xpm/midi_plugS.xpm"
#include "xpm/miditransposeS.xpm"
#include "xpm/mixerS.xpm"
-#include "xpm/mustangS.xpm"
+// #include "xpm/mustangS.xpm"
#include "xpm/resetS.xpm"
#include "xpm/track_add.xpm"
#include "xpm/track_delete.xpm"
@@ -149,7 +145,7 @@ QPixmap* miditransformSIcon;
QPixmap* midi_plugSIcon;
QPixmap* miditransposeSIcon;
QPixmap* mixerSIcon;
-QPixmap* mustangSIcon;
+// QPixmap* mustangSIcon;
QPixmap* resetSIcon;
QPixmap* track_addIcon;
QPixmap* track_deleteIcon;
@@ -247,14 +243,13 @@ 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* 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_remote_controlIcon;
+// QPixmap* midi_inputpluginsIcon;
QPixmap* midi_local_offIcon;
QPixmap* midi_reset_instrIcon;
QPixmap* settings_appearance_settingsIcon;
@@ -342,7 +337,7 @@ void initIcons()
midi_plugSIcon = new QPixmap(midi_plugS_xpm);
miditransposeSIcon = new QPixmap(miditransposeS_xpm);
mixerSIcon = new QPixmap(mixerS_xpm);
- mustangSIcon = new QPixmap(mustangS_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);
@@ -381,14 +376,10 @@ void initIcons()
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_remote_controlIcon = new QPixmap(midi_inputplugins_remote_control_xpm);
+// midi_inputpluginsIcon = new QPixmap(midi_inputplugins_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);
diff --git a/muse/muse/icons.h b/muse/muse/icons.h
index f871c890..70d90e39 100644
--- a/muse/muse/icons.h
+++ b/muse/muse/icons.h
@@ -122,14 +122,9 @@ 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_remote_controlIcon;
extern QPixmap* midi_local_offIcon;
extern QPixmap* midi_reset_instrIcon;
extern QPixmap* settings_appearance_settingsIcon;
diff --git a/muse/muse/midiplugin.cpp b/muse/muse/midiplugin.cpp
index b679fef9..372bf4a3 100644
--- a/muse/muse/midiplugin.cpp
+++ b/muse/muse/midiplugin.cpp
@@ -119,7 +119,7 @@ MidiPluginI* MidiPlugin::instantiate(MidiTrackBase* t)
delete m;
return 0;
}
- MidiPluginI* mp = new MidiPluginI(this,t, m);
+ MidiPluginI* mp = new MidiPluginI(this, t, m);
return mp;
}
@@ -172,6 +172,8 @@ MidiPluginI::MidiPluginI(MidiTrackBase* t)
MidiPluginI::~MidiPluginI()
{
+ if (mempi)
+ delete mempi;
}
//---------------------------------------------------------
diff --git a/muse/muse/miditrack.cpp b/muse/muse/miditrack.cpp
index d9ae29dd..16373e71 100644
--- a/muse/muse/miditrack.cpp
+++ b/muse/muse/miditrack.cpp
@@ -222,6 +222,8 @@ void MidiTrack::recordBeat()
}
while (!recordFifo.isEmpty()) {
MidiEvent me(recordFifo.get());
+printf("<%s> record\n", name().toLatin1().data());
+
unsigned time = me.time();
if (song->punchin() && time < song->lpos())
continue;
diff --git a/muse/muse/miditrackbase.cpp b/muse/muse/miditrackbase.cpp
index faf0ed4d..7af53299 100644
--- a/muse/muse/miditrackbase.cpp
+++ b/muse/muse/miditrackbase.cpp
@@ -86,28 +86,16 @@ MidiPluginI* MidiTrackBase::plugin(int idx) const
//---------------------------------------------------------
// addPlugin
+// realtime context
// idx = -1 append
// plugin = 0 remove slot
//---------------------------------------------------------
void MidiTrackBase::addPlugin(MidiPluginI* plugin, int idx)
{
- if (plugin == 0) {
-#if 0
- MidiPluginI* oldPlugin = (*_pipeline)[idx];
- if (oldPlugin) {
- int controller = oldPlugin->plugin()->parameter();
- for (int i = 0; i < controller; ++i) {
- int id = (idx + 1) * 0x1000 + i;
- removeController(id);
- }
- }
-#endif
- }
- if (idx == -1)
- idx = _pipeline->size();
-
if (plugin) {
+ if (idx == -1)
+ idx = _pipeline->size();
_pipeline->insert(idx, plugin);
#if 0
int ncontroller = plugin->plugin()->parameter();
@@ -131,7 +119,16 @@ void MidiTrackBase::addPlugin(MidiPluginI* plugin, int idx)
#endif
}
else {
- _pipeline->removeAt(idx);
+ MidiPluginI* oldPlugin = _pipeline->takeAt(idx);
+ if (oldPlugin) {
+#if 0
+ int controller = oldPlugin->plugin()->parameter();
+ for (int i = 0; i < controller; ++i) {
+ int id = (idx + 1) * 0x1000 + i;
+ removeController(id);
+ }
+#endif
+ }
}
}
diff --git a/muse/muse/muse.cpp b/muse/muse/muse.cpp
index cdb9dd93..96a9f8ac 100644
--- a/muse/muse/muse.cpp
+++ b/muse/muse/muse.cpp
@@ -2952,6 +2952,7 @@ int main(int argc, char* argv[])
}
if (loadVST)
initVST();
+
if (loadDSSI)
initDSSI();
diff --git a/muse/muse/seqmsg.cpp b/muse/muse/seqmsg.cpp
index 836d2dde..d7f8ea0a 100644
--- a/muse/muse/seqmsg.cpp
+++ b/muse/muse/seqmsg.cpp
@@ -180,11 +180,10 @@ void Audio::msgAddMidiPlugin(MidiTrackBase* track, int idx, MidiPluginI* plugin)
msg.track = track;
msg.ival = idx;
msg.mplugin = plugin;
- MidiPluginI* oldPlugin = track->plugin(idx);
+ MidiPluginI* oldPlugin = plugin ? 0 : track->plugin(idx);
sendMsg(&msg);
- if (oldPlugin) {
+ if (oldPlugin)
delete oldPlugin;
- }
}
//---------------------------------------------------------
diff --git a/muse/muse/synth.h b/muse/muse/synth.h
index 109a9994..6d555233 100644
--- a/muse/muse/synth.h
+++ b/muse/muse/synth.h
@@ -138,6 +138,7 @@ class SynthI : public AudioTrack, public MidiOut, public MidiInstrument
public:
friend class SynthIF;
friend class MessSynthIF;
+ friend class DssiSynthIF;
SynthI();
virtual ~SynthI();
diff --git a/muse/muse/xpm/automation_clear_data.xpm b/muse/muse/xpm/automation_clear_data.xpm
deleted file mode 100644
index e4648c29..00000000
--- a/muse/muse/xpm/automation_clear_data.xpm
+++ /dev/null
@@ -1,22 +0,0 @@
-/* XPM */
-static const char * automation_clear_data_xpm[] = {
-"16 16 3 1",
-" c None",
-". c #FF0000",
-"+ c #FFBEBE",
-" ",
-" ",
-" ",
-" ..+ +.. ",
-" ...+ +... ",
-" +...++...+ ",
-" +......+ ",
-" +....+ ",
-" +....+ ",
-" +......+ ",
-" +...++...+ ",
-" ...+ +... ",
-" ..+ +.. ",
-" ",
-" ",
-" "};
diff --git a/muse/muse/xpm/automation_mixer.xpm b/muse/muse/xpm/automation_mixer.xpm
deleted file mode 100644
index 4a59c220..00000000
--- a/muse/muse/xpm/automation_mixer.xpm
+++ /dev/null
@@ -1,35 +0,0 @@
-/* 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/muse/muse/xpm/automation_take_snapshot.xpm b/muse/muse/xpm/automation_take_snapshot.xpm
deleted file mode 100644
index 8f7beae7..00000000
--- a/muse/muse/xpm/automation_take_snapshot.xpm
+++ /dev/null
@@ -1,144 +0,0 @@
-/* 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/muse/muse/xpm/midi_inputplugins.xpm b/muse/muse/xpm/midi_inputplugins.xpm
deleted file mode 100644
index 3874a052..00000000
--- a/muse/muse/xpm/midi_inputplugins.xpm
+++ /dev/null
@@ -1,33 +0,0 @@
-/* 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/muse/muse/xpm/midi_inputplugins_midi_input_filter.xpm b/muse/muse/xpm/midi_inputplugins_midi_input_filter.xpm
deleted file mode 100644
index c218d3f7..00000000
--- a/muse/muse/xpm/midi_inputplugins_midi_input_filter.xpm
+++ /dev/null
@@ -1,98 +0,0 @@
-/* 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/muse/muse/xpm/midi_inputplugins_midi_input_transform.xpm b/muse/muse/xpm/midi_inputplugins_midi_input_transform.xpm
deleted file mode 100644
index 35730e37..00000000
--- a/muse/muse/xpm/midi_inputplugins_midi_input_transform.xpm
+++ /dev/null
@@ -1,31 +0,0 @@
-/* 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/muse/muse/xpm/midi_inputplugins_random_rhythm_generator.xpm b/muse/muse/xpm/midi_inputplugins_random_rhythm_generator.xpm
deleted file mode 100644
index beaef721..00000000
--- a/muse/muse/xpm/midi_inputplugins_random_rhythm_generator.xpm
+++ /dev/null
@@ -1,67 +0,0 @@
-/* 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/muse/muse/xpm/midi_inputplugins_remote_control.xpm b/muse/muse/xpm/midi_inputplugins_remote_control.xpm
deleted file mode 100644
index 6347cdaf..00000000
--- a/muse/muse/xpm/midi_inputplugins_remote_control.xpm
+++ /dev/null
@@ -1,64 +0,0 @@
-/* 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/muse/muse/xpm/midi_inputplugins_transpose.xpm b/muse/muse/xpm/midi_inputplugins_transpose.xpm
deleted file mode 100644
index 56cd1a8e..00000000
--- a/muse/muse/xpm/midi_inputplugins_transpose.xpm
+++ /dev/null
@@ -1,30 +0,0 @@
-/* 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/muse/muse/xpm/mustangS.xpm b/muse/muse/xpm/mustangS.xpm
deleted file mode 100644
index e4e6be03..00000000
--- a/muse/muse/xpm/mustangS.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
-/* 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..",
-".####...........",
-"................"};