summaryrefslogtreecommitdiff
path: root/muse2/synti/simpledrums2/simpledrumsgui.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/synti/simpledrums2/simpledrumsgui.cpp')
-rw-r--r--muse2/synti/simpledrums2/simpledrumsgui.cpp42
1 files changed, 38 insertions, 4 deletions
diff --git a/muse2/synti/simpledrums2/simpledrumsgui.cpp b/muse2/synti/simpledrums2/simpledrumsgui.cpp
index c426d547..1b8acede 100644
--- a/muse2/synti/simpledrums2/simpledrumsgui.cpp
+++ b/muse2/synti/simpledrums2/simpledrumsgui.cpp
@@ -256,6 +256,7 @@ QChannelDial::QChannelDial(QWidget* parent, int ch, int fxid)
setTracking(true);
channel = ch;
sendfxid = fxid;
+ connect(this, SIGNAL(sliderReleased()), SLOT(forwardSliderMoved()));
}
/*!
@@ -276,6 +277,12 @@ void QChannelDial::sliderChange(SliderChange change)
emit valueChanged(channel, sendfxid, value());
}
+void QChannelDial::forwardSliderMoved()
+{
+ printf("forwardSliderMoved();\n");
+ emit sliderMoved(channel, value());
+}
+
/*!
\fn SimpleSynthGui::SimpleSynthGui()
*/
@@ -338,6 +345,15 @@ SimpleSynthGui::SimpleSynthGui()
inchnlLayout->addWidget(volumeSliders[i]);
connect(volumeSliders[i], SIGNAL(valueChanged(int, int)), SLOT(volumeChanged(int, int)));
+ pitchKnobs[i] = new QChannelDial(channelButtonGroups[i], i, 0);
+ pitchKnobs[i]->setRange(-63,63);
+ pitchKnobs[i]->setValue(0);
+ pitchKnobs[i]->setToolTip("Pitch, channel " + QString::number(i + 1));
+ pitchKnobs[i]->setFixedSize(30,30);
+ inchnlLayout->addWidget(pitchKnobs[i]);
+ connect(pitchKnobs[i], SIGNAL(sliderMoved(int,int)), SLOT(pitchChanged(int,int)));
+
+
nOffLabel[i] = new QLabel(channelButtonGroups[i]);
// nOffLabel[i]->setMinimumSize(SS_NONOFF_LABEL_WIDTH, SS_NONOFF_LABEL_HEIGHT);
nOffLabel[i]->setText("nOff");
@@ -544,12 +560,14 @@ void SimpleSynthGui::processEvent(const MusECore::MidiPlayEvent& ev)
switch(id) {
case SS_CHANNEL_CTRL_VOLUME:
volumeSliders[ch]->blockSignals(true);
-
- ///volumeSliders[ch]->setValue(SS_VOLUME_MAX_VALUE - val);
- volumeSliders[ch]->setValue(val); // p4.0.27
-
+ volumeSliders[ch]->setValue(val);
volumeSliders[ch]->blockSignals(false);
break;
+ case SS_CHANNEL_CTRL_PITCH:
+ pitchKnobs[ch]->blockSignals(true);
+ pitchKnobs[ch]->setValue(-(val-63));
+ pitchKnobs[ch]->blockSignals(false);
+ break;
case SS_CHANNEL_CTRL_PAN:
panSliders[ch]->blockSignals(true);
@@ -767,6 +785,15 @@ void SimpleSynthGui::volumeChanged(int channel, int val)
}
/*!
+ \fn SimpleSynthGui::pitchChanged(int val)
+ */
+void SimpleSynthGui::pitchChanged(int channel, int val)
+ {
+ printf("Gui::pitchChanged %d %d\n", channel, val);
+ setChannelPitch(channel, -val+63);
+ }
+
+/*!
\fn SimpleSynthGui::panChanged(int channel, int value)
*/
void SimpleSynthGui::panChanged(int channel, int value)
@@ -815,6 +842,13 @@ void SimpleSynthGui::setChannelVolume(int channel, int volume)
sendController(0, SS_CHANNEL_VOLUME_CONTROLLER(channel), (int)volume);
}
+/*!
+ \fn SimpleSynthGui::setChannelPitch(int channel, byte pitch)
+ */
+void SimpleSynthGui::setChannelPitch(int channel, int pitch)
+ {
+ sendController(0, SS_CHANNEL_PITCH_CONTROLLER(channel), (int)pitch);
+ }
/*!
\fn SimpleSynthGui::loadSampleDialogue(int channel)