From d930cf81c2cbcc65b373442a2aed3e631d331314 Mon Sep 17 00:00:00 2001 From: Robert Jonsson Date: Thu, 4 Apr 2013 19:10:10 +0000 Subject: simpledrums pitch and ctrl+arrows --- muse2/synti/simpledrums2/simpledrumsgui.cpp | 42 ++++++++++++++++++++++++++--- 1 file changed, 38 insertions(+), 4 deletions(-) (limited to 'muse2/synti/simpledrums2/simpledrumsgui.cpp') 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); @@ -766,6 +784,15 @@ void SimpleSynthGui::volumeChanged(int channel, int val) setChannelVolume(channel, 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) */ @@ -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) -- cgit v1.2.3