From 6cde69b0213447305ec68465f903f96923a9dbe6 Mon Sep 17 00:00:00 2001 From: Werner Schweer Date: Tue, 31 Oct 2006 18:07:55 +0000 Subject: updates --- muse/muse/midichannel.cpp | 2 ++ muse/muse/synth.cpp | 30 ++++++++++++++++++++---------- muse/synti/zynaddsubfx/main.cpp | 17 +++++++++++++++++ 3 files changed, 39 insertions(+), 10 deletions(-) diff --git a/muse/muse/midichannel.cpp b/muse/muse/midichannel.cpp index 40294b2a..044c8a0a 100644 --- a/muse/muse/midichannel.cpp +++ b/muse/muse/midichannel.cpp @@ -51,6 +51,8 @@ MidiChannel::MidiChannel(MidiOut* p, int ch) addMidiController(mi, CTRL_REVERB_SEND); addMidiController(mi, CTRL_CHORUS_SEND); addMidiController(mi, CTRL_VARIATION_SEND); + + // TODO: setDefault Values } //--------------------------------------------------------- diff --git a/muse/muse/synth.cpp b/muse/muse/synth.cpp index a58a7736..ebdbc10f 100644 --- a/muse/muse/synth.cpp +++ b/muse/muse/synth.cpp @@ -373,6 +373,11 @@ void SynthI::write(Xml& xml) const AudioTrack::writeProperties(xml); xml.strTag("class", synth()->name()); + for (int i = 0; i < MIDI_CHANNELS; ++i) { + if (!_channel[i]->noInRoute()) + _channel[i]->write(xml); + } + //--------------------------------------------- // if soft synth is attached to a midi port, // write out port number @@ -387,9 +392,9 @@ void SynthI::write(Xml& xml) const if (h || w) xml.qrectTag("geometry", QRect(x, y, w, h)); } - _sif->write(xml); xml.etag("SynthI"); + } void MessSynthIF::write(Xml& xml) const @@ -432,25 +437,30 @@ void SynthI::read(QDomNode node) bool startGui = false; QRect r; - while (!node.isNull()) { + for (; !node.isNull(); node = node.nextSibling()) { QDomElement e = node.toElement(); - if (e.tagName() == "class") + QString tag(e.tagName()); + if (tag == "class") sclass = e.text(); - else if (e.tagName() == "port") + else if (tag == "port") port = e.text().toInt(); - else if (e.tagName() == "guiVisible") + else if (tag == "guiVisible") startGui = e.text().toInt(); - else if (e.tagName() == "midistate") + else if (tag == "midistate") readMidiState(node.firstChild()); - else if (e.tagName() == "param") { + else if (tag == "param") { float val = e.text().toFloat(); initParams.push_back(val); } - else if (e.tagName() == "geometry") + else if (tag == "geometry") r = AL::readGeometry(node); - else if (AudioTrack::readProperties(node)) + else if (tag == "MidiChannel") { + int idx = e.attribute("idx", "0").toInt(); + _channel[idx]->read(node.firstChild()); + } + else if (AudioTrack::readProperties(node)) { printf("MusE:SynthI: unknown tag %s\n", e.tagName().toLatin1().data()); - node = node.nextSibling(); + } } Synth* s = findSynth(sclass); if (s == 0) diff --git a/muse/synti/zynaddsubfx/main.cpp b/muse/synti/zynaddsubfx/main.cpp index 7fd863d2..92612f45 100644 --- a/muse/synti/zynaddsubfx/main.cpp +++ b/muse/synti/zynaddsubfx/main.cpp @@ -208,6 +208,23 @@ struct ZynCtrl { int max; }; +// +// NRPN +// 0x04 0 // System Effects +// 0x04 1 +// 0x04 2 +// 0x04 3 +// +// 0x08 0 // Insertion Effects +// 0x08 1 +// 0x08 2 +// 0x08 3 +// 0x08 4 +// 0x08 5 +// 0x08 6 +// 0x08 7 +// 0x08 8 + int Zynadd::getControllerInfo(int i, const char** name, int* num, int* min, int* max) { static const ZynCtrl ctrl[] = { -- cgit v1.2.3