Update of /cvsroot/alsamodular/qmidiarp/src In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv4256 Modified Files: lfoscreen.cpp lfoscreen.h lfowidget.cpp lfowidget.h midilfo.cpp midilfo.h seqdriver.cpp Log Message: "lfo.." particle in variable names removed where applicable Index: lfowidget.cpp =================================================================== RCS file: /cvsroot/alsamodular/qmidiarp/src/lfowidget.cpp,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** lfowidget.cpp 27 Oct 2009 21:52:21 -0000 1.10 --- lfowidget.cpp 28 Oct 2009 07:56:29 -0000 1.11 *************** *** 49,60 **** muteLabel->setBuddy(muteOut); ! QLabel *lfoCCnumberLabel = new QLabel(tr("&MIDI CC#"), portBox); ! lfoCCnumberBox = new QSpinBox(portBox); ! lfoCCnumberLabel->setBuddy(lfoCCnumberBox); ! lfoCCnumberBox->setRange(0, 127); ! lfoCCnumberBox->setValue(74); ! lfoCCnumberBox->setToolTip(tr("MIDI Controller number sent to output")); ! connect(lfoCCnumberBox, SIGNAL(valueChanged(int)), this, ! SLOT(updateLfoCCnumber(int))); QLabel *channelLabel = new QLabel(tr("C&hannel"), portBox); --- 49,60 ---- muteLabel->setBuddy(muteOut); ! QLabel *ccnumberLabel = new QLabel(tr("&MIDI CC#"), portBox); ! ccnumberBox = new QSpinBox(portBox); ! ccnumberLabel->setBuddy(ccnumberBox); ! ccnumberBox->setRange(0, 127); ! ccnumberBox->setValue(74); ! ccnumberBox->setToolTip(tr("MIDI Controller number sent to output")); ! connect(ccnumberBox, SIGNAL(valueChanged(int)), this, ! SLOT(updateCcnumber(int))); QLabel *channelLabel = new QLabel(tr("C&hannel"), portBox); *************** *** 76,81 **** portBoxLayout->addWidget(muteLabel, 0, 0); portBoxLayout->addWidget(muteOut, 0, 1); ! portBoxLayout->addWidget(lfoCCnumberLabel, 1, 0); ! portBoxLayout->addWidget(lfoCCnumberBox, 1, 1); portBoxLayout->addWidget(portLabel, 2, 0); portBoxLayout->addWidget(portOut, 2, 1); --- 76,81 ---- portBoxLayout->addWidget(muteLabel, 0, 0); portBoxLayout->addWidget(muteOut, 0, 1); ! portBoxLayout->addWidget(ccnumberLabel, 1, 0); ! portBoxLayout->addWidget(ccnumberBox, 1, 1); portBoxLayout->addWidget(portLabel, 2, 0); portBoxLayout->addWidget(portOut, 2, 1); *************** *** 109,162 **** SLOT(updateWaveForm(int))); ! QLabel *lfoFreqBoxLabel = new QLabel(tr("&Frequency (cycles/beat)"), patternBox); ! lfoFreqBox = new QComboBox(patternBox); ! lfoFreqBoxLabel->setBuddy(lfoFreqBox); QStringList names; names << "1/4" << "1/2" << "3/4" << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8"; ! lfoFreqBox->insertItems(0, names); ! lfoFreqBox->setCurrentIndex(3); ! lfoFreqBox->setToolTip( tr("Frequency: Number of wave cycles produced every beat")); ! lfoFreqBox->setMinimumContentsLength(3); ! connect(lfoFreqBox, SIGNAL(activated(int)), this, ! SLOT(updateLfoFreq(int))); ! QLabel *lfoResBoxLabel = new QLabel(tr("&Resolution (events/beat)"), patternBox); ! lfoResBox = new QComboBox(patternBox); ! lfoResBoxLabel->setBuddy(lfoResBox); names.clear(); names << "1" << "2" << "4" << "8" << "16" << "32" << "64" << "96" << "192"; ! lfoResBox->insertItems(0, names); ! lfoResBox->setCurrentIndex(4); ! lfoResBox->setToolTip( tr("Resolution: Number of events produced every beat")); ! lfoResBox->setMinimumContentsLength(3); ! connect(lfoResBox, SIGNAL(activated(int)), this, ! SLOT(updateLfoRes(int))); ! QLabel *lfoSizeBoxLabel = new QLabel(tr("&Length (beats)"), patternBox); ! lfoSizeBox = new QComboBox(patternBox); ! lfoSizeBoxLabel->setBuddy(lfoSizeBox); names.clear(); names << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8"; ! lfoSizeBox->insertItems(0, names); ! lfoSizeBox->setCurrentIndex(0); ! lfoSizeBox->setToolTip(tr("Length of LFO wave in beats")); ! lfoSizeBox->setMinimumContentsLength(3); ! connect(lfoSizeBox, SIGNAL(activated(int)), this, ! SLOT(updateLfoSize(int))); amplitude = new Slider(0, 127, 1, 8, 64, Qt::Horizontal, tr("&Amplitude"), patternBox); connect(amplitude, SIGNAL(valueChanged(int)), this, ! SLOT(updateLfoAmp(int))); offset = new Slider(0, 127, 1, 8, 0, Qt::Horizontal, tr("&Offset"), patternBox); connect(offset, SIGNAL(valueChanged(int)), this, ! SLOT(updateLfoOffs(int))); QVBoxLayout* sliderLayout = new QVBoxLayout; --- 109,162 ---- SLOT(updateWaveForm(int))); ! QLabel *freqBoxLabel = new QLabel(tr("&Frequency (cycles/beat)"), patternBox); ! freqBox = new QComboBox(patternBox); ! freqBoxLabel->setBuddy(freqBox); QStringList names; names << "1/4" << "1/2" << "3/4" << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8"; ! freqBox->insertItems(0, names); ! freqBox->setCurrentIndex(3); ! freqBox->setToolTip( tr("Frequency: Number of wave cycles produced every beat")); ! freqBox->setMinimumContentsLength(3); ! connect(freqBox, SIGNAL(activated(int)), this, ! SLOT(updateFreq(int))); ! QLabel *resBoxLabel = new QLabel(tr("&Resolution (events/beat)"), patternBox); ! resBox = new QComboBox(patternBox); ! resBoxLabel->setBuddy(resBox); names.clear(); names << "1" << "2" << "4" << "8" << "16" << "32" << "64" << "96" << "192"; ! resBox->insertItems(0, names); ! resBox->setCurrentIndex(4); ! resBox->setToolTip( tr("Resolution: Number of events produced every beat")); ! resBox->setMinimumContentsLength(3); ! connect(resBox, SIGNAL(activated(int)), this, ! SLOT(updateRes(int))); ! QLabel *sizeBoxLabel = new QLabel(tr("&Length (beats)"), patternBox); ! sizeBox = new QComboBox(patternBox); ! sizeBoxLabel->setBuddy(sizeBox); names.clear(); names << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8"; ! sizeBox->insertItems(0, names); ! sizeBox->setCurrentIndex(0); ! sizeBox->setToolTip(tr("Length of LFO wave in beats")); ! sizeBox->setMinimumContentsLength(3); ! connect(sizeBox, SIGNAL(activated(int)), this, ! SLOT(updateSize(int))); amplitude = new Slider(0, 127, 1, 8, 64, Qt::Horizontal, tr("&Amplitude"), patternBox); connect(amplitude, SIGNAL(valueChanged(int)), this, ! SLOT(updateAmp(int))); offset = new Slider(0, 127, 1, 8, 0, Qt::Horizontal, tr("&Offset"), patternBox); connect(offset, SIGNAL(valueChanged(int)), this, ! SLOT(updateOffs(int))); QVBoxLayout* sliderLayout = new QVBoxLayout; *************** *** 169,180 **** patternBoxLayout->addWidget(waveFormBox, 0, 1); ! patternBoxLayout->addWidget(lfoFreqBoxLabel, 1, 0); ! patternBoxLayout->addWidget(lfoFreqBox, 1, 1); ! patternBoxLayout->addWidget(lfoResBoxLabel, 2, 0); ! patternBoxLayout->addWidget(lfoResBox, 2, 1); ! patternBoxLayout->addWidget(lfoSizeBoxLabel, 3, 0); ! patternBoxLayout->addWidget(lfoSizeBox, 3, 1); QGridLayout* waveBoxLayout = new QGridLayout; --- 169,180 ---- patternBoxLayout->addWidget(waveFormBox, 0, 1); ! patternBoxLayout->addWidget(freqBoxLabel, 1, 0); ! patternBoxLayout->addWidget(freqBox, 1, 1); ! patternBoxLayout->addWidget(resBoxLabel, 2, 0); ! patternBoxLayout->addWidget(resBox, 2, 1); ! patternBoxLayout->addWidget(sizeBoxLabel, 3, 0); ! patternBoxLayout->addWidget(sizeBox, 3, 1); QGridLayout* waveBoxLayout = new QGridLayout; *************** *** 190,194 **** setLayout(lfoWidgetLayout); ! updateLfoAmp(64); } --- 190,194 ---- setLayout(lfoWidgetLayout); ! updateAmp(64); } *************** *** 218,227 **** arpText << midiLfo->channelOut << ' ' << midiLfo->portOut << ' ' ! << midiLfo->lfoCCnumber << '\n'; ! arpText << lfoFreqBox->currentIndex() << ' ' ! << lfoResBox->currentIndex() << ' ' ! << lfoSizeBox->currentIndex() << ' ' ! << midiLfo->lfoAmp << ' ' ! << midiLfo->lfoOffs << '\n'; arpText << waveFormBox->currentIndex() << '\n'; arpText << "EOP\n"; // End Of Pattern --- 218,227 ---- arpText << midiLfo->channelOut << ' ' << midiLfo->portOut << ' ' ! << midiLfo->ccnumber << '\n'; ! arpText << freqBox->currentIndex() << ' ' ! << resBox->currentIndex() << ' ' ! << sizeBox->currentIndex() << ' ' ! << midiLfo->amp << ' ' ! << midiLfo->offs << '\n'; arpText << waveFormBox->currentIndex() << '\n'; arpText << "EOP\n"; // End Of Pattern *************** *** 239,253 **** portOut->setValue(qs2.toInt() + 1); qs2 = qs.section(' ', 2, 2); ! lfoCCnumberBox->setValue(qs2.toInt()); qs = arpText.readLine(); qs2 = qs.section(' ', 0, 0); ! lfoFreqBox->setCurrentIndex(qs2.toInt()); ! updateLfoFreq(qs2.toInt()); qs2 = qs.section(' ', 1, 1); ! lfoResBox->setCurrentIndex(qs2.toInt()); ! updateLfoRes(qs2.toInt()); qs2 = qs.section(' ', 2, 2); ! lfoSizeBox->setCurrentIndex(qs2.toInt()); ! updateLfoSize(qs2.toInt()); qs2 = qs.section(' ', 3, 3); amplitude->setValue(qs2.toInt()); --- 239,253 ---- portOut->setValue(qs2.toInt() + 1); qs2 = qs.section(' ', 2, 2); ! ccnumberBox->setValue(qs2.toInt()); qs = arpText.readLine(); qs2 = qs.section(' ', 0, 0); ! freqBox->setCurrentIndex(qs2.toInt()); ! updateFreq(qs2.toInt()); qs2 = qs.section(' ', 1, 1); ! resBox->setCurrentIndex(qs2.toInt()); ! updateRes(qs2.toInt()); qs2 = qs.section(' ', 2, 2); ! sizeBox->setCurrentIndex(qs2.toInt()); ! updateSize(qs2.toInt()); qs2 = qs.section(' ', 3, 3); amplitude->setValue(qs2.toInt()); *************** *** 262,268 **** ! void LfoWidget::updateLfoCCnumber(int val) { ! midiLfo->lfoCCnumber = val; modified = true; } --- 262,268 ---- ! void LfoWidget::updateCcnumber(int val) { ! midiLfo->ccnumber = val; modified = true; } *************** *** 284,288 **** midiLfo->updateWaveForm(val); midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); modified = true; } --- 284,288 ---- midiLfo->updateWaveForm(val); midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); modified = true; } *************** *** 294,336 **** } ! void LfoWidget::updateLfoFreq(int val) { ! midiLfo->lfoFreq = lfoFreqValues[val]; midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); modified = true; } ! void LfoWidget::updateLfoRes(int val) { ! midiLfo->lfoRes = lfoResValues[val]; midiLfo->resizeAll(); midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); modified = true; } ! void LfoWidget::updateLfoSize(int val) { ! midiLfo->lfoSize = val + 1; midiLfo->resizeAll(); midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); modified = true; } ! void LfoWidget::updateLfoAmp(int val) { ! midiLfo->lfoAmp = val; midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); modified = true; } ! void LfoWidget::updateLfoOffs(int val) { ! midiLfo->lfoOffs = val; midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); modified = true; } --- 294,336 ---- } ! void LfoWidget::updateFreq(int val) { ! midiLfo->freq = lfoFreqValues[val]; midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); modified = true; } ! void LfoWidget::updateRes(int val) { ! midiLfo->res = lfoResValues[val]; midiLfo->resizeAll(); midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); modified = true; } ! void LfoWidget::updateSize(int val) { ! midiLfo->size = val + 1; midiLfo->resizeAll(); midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); modified = true; } ! void LfoWidget::updateAmp(int val) { ! midiLfo->amp = val; midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); modified = true; } ! void LfoWidget::updateOffs(int val) { ! midiLfo->offs = val; midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); modified = true; } *************** *** 341,345 **** midiLfo->setCustomWavePoint(mouseX, mouseY); midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); } } --- 341,345 ---- midiLfo->setCustomWavePoint(mouseX, mouseY); midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); } } *************** *** 349,358 **** midiLfo->toggleMutePoint(mouseX); midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); } else if (waveFormBox->currentIndex() == 5) { midiLfo->setCustomWavePoint(mouseX, mouseY); midiLfo->getData(&lfoData); ! lfoScreen->updateLfoScreen(lfoData); } } --- 349,358 ---- midiLfo->toggleMutePoint(mouseX); midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); } else if (waveFormBox->currentIndex() == 5) { midiLfo->setCustomWavePoint(mouseX, mouseY); midiLfo->getData(&lfoData); ! lfoScreen->updateScreen(lfoData); } } Index: lfowidget.h =================================================================== RCS file: /cvsroot/alsamodular/qmidiarp/src/lfowidget.h,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** lfowidget.h 27 Oct 2009 21:52:21 -0000 1.7 --- lfowidget.h 28 Oct 2009 07:56:29 -0000 1.8 *************** *** 41,46 **** // Output channel / port (ALSA Sequencer) ! QSpinBox *channelOut, *portOut, *lfoCCnumberBox; ! QComboBox *waveFormBox, *lfoResBox, *lfoSizeBox, *lfoFreqBox; MidiLfo *midiLfo; --- 41,46 ---- // Output channel / port (ALSA Sequencer) ! QSpinBox *channelOut, *portOut, *ccnumberBox; ! QComboBox *waveFormBox, *resBox, *sizeBox, *freqBox; MidiLfo *midiLfo; *************** *** 74,83 **** void updatePortOut(int value); void updateWaveForm(int); ! void updateLfoRes(int); ! void updateLfoSize(int); ! void updateLfoCCnumber(int val); ! void updateLfoFreq(int val); ! void updateLfoAmp(int val); ! void updateLfoOffs(int val); void mouseMoved(double, double, int); void mousePressed(double, double, int); --- 74,83 ---- void updatePortOut(int value); void updateWaveForm(int); ! void updateRes(int); ! void updateSize(int); ! void updateCcnumber(int val); ! void updateFreq(int val); ! void updateAmp(int val); ! void updateOffs(int val); void mouseMoved(double, double, int); void mousePressed(double, double, int); Index: lfoscreen.cpp =================================================================== RCS file: /cvsroot/alsamodular/qmidiarp/src/lfoscreen.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** lfoscreen.cpp 27 Oct 2009 21:52:21 -0000 1.4 --- lfoscreen.cpp 28 Oct 2009 07:56:28 -0000 1.5 *************** *** 88,92 **** //Grid if (p_lfoData.isEmpty()) return; ! nsteps = p_lfoData.at(p_lfoData.count() - 1).lfoTick / TICKS_PER_QUARTER; beatRes = (p_lfoData.count() - 1) / nsteps; beatDiv = (beatRes * nsteps > 64) ? 64 / nsteps : beatRes; --- 88,92 ---- //Grid if (p_lfoData.isEmpty()) return; ! nsteps = p_lfoData.at(p_lfoData.count() - 1).tick / TICKS_PER_QUARTER; beatRes = (p_lfoData.count() - 1) / nsteps; beatDiv = (beatRes * nsteps > 64) ? 64 / nsteps : beatRes; *************** *** 152,156 **** octYoffset = 0; x = l1 * xscale * nsteps / npoints; ! ypos = yscale - yscale * p_lfoData.at(l1).lfoValue / 128 + LFOSCREEN_VMARGIN; xpos = LFOSCREEN_HMARGIN + x + notestreak_thick / 2; --- 152,156 ---- octYoffset = 0; x = l1 * xscale * nsteps / npoints; ! ypos = yscale - yscale * p_lfoData.at(l1).value / 128 + LFOSCREEN_VMARGIN; xpos = LFOSCREEN_HMARGIN + x + notestreak_thick / 2; *************** *** 170,174 **** ! void LfoScreen::updateLfoScreen(QVector<LfoSample> lfoData) { p_lfoData = lfoData; --- 170,174 ---- ! void LfoScreen::updateScreen(QVector<LfoSample> lfoData) { p_lfoData = lfoData; Index: midilfo.cpp =================================================================== RCS file: /cvsroot/alsamodular/qmidiarp/src/midilfo.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** midilfo.cpp 27 Oct 2009 21:52:21 -0000 1.9 --- midilfo.cpp 28 Oct 2009 07:56:29 -0000 1.10 *************** *** 28,43 **** { queueTempo = 100.0; ! lfoAmp = 0; ! lfoOffs = 0; ! lfoFreq = 4; ! lfoSize = 1; ! lfoRes = 16; ! lfoCCnumber = 74; portOut = 0; channelOut = 0; waveFormIndex = 0; isMuted = false; ! customWave.resize(lfoSize * lfoRes); ! muteMask.resize(lfoSize * lfoRes); } --- 28,43 ---- { queueTempo = 100.0; ! amp = 0; ! offs = 0; ! freq = 4; ! size = 1; ! res = 16; ! ccnumber = 74; portOut = 0; channelOut = 0; waveFormIndex = 0; isMuted = false; ! customWave.resize(size * res); ! muteMask.resize(size * res); } *************** *** 63,72 **** int l1 = 0; int lt = 0; ! int step = TICKS_PER_QUARTER / lfoRes; ! int lfoval = 0; int tempval; bool cl = false; ! //lfoRes: number of events per beat ! //lfoSize: size of waveform in beats QVector<LfoSample> lfoData; lfoData.clear(); --- 63,72 ---- int l1 = 0; int lt = 0; ! int step = TICKS_PER_QUARTER / res; ! int val = 0; int tempval; bool cl = false; ! //res: number of events per beat ! //size: size of waveform in beats QVector<LfoSample> lfoData; lfoData.clear(); *************** *** 74,82 **** switch(waveFormIndex) { case 0: //sine ! for (l1 = 0; l1 < lfoSize * lfoRes; l1++) { ! lfoSample.lfoValue = clip((-cos((double)(l1 * 6.28 / ! lfoRes * lfoFreq / 4)) + 1) * lfoAmp / 2 ! + lfoOffs, 0, 127, &cl); ! lfoSample.lfoTick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); --- 74,81 ---- switch(waveFormIndex) { case 0: //sine ! for (l1 = 0; l1 < size * res; l1++) { ! lfoSample.value = clip((-cos((double)(l1 * 6.28 / ! res * freq / 4)) + 1) * amp / 2 + offs, 0, 127, &cl); ! lfoSample.tick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); *************** *** 85,137 **** break; case 1: //sawtooth up ! lfoval = 0; ! for (l1 = 0; l1 < lfoSize * lfoRes; l1++) { ! lfoSample.lfoValue = clip(lfoval * lfoAmp / lfoRes / 4 ! + lfoOffs, 0, 127, &cl); ! ; ! lfoSample.lfoTick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); lt += step; ! lfoval += lfoFreq; ! lfoval %= lfoRes * 4; } break; case 2: //triangle ! lfoval = 0; ! for (l1 = 0; l1 < lfoSize * lfoRes; l1++) { ! tempval = lfoval - lfoRes * 2; if (tempval < 0 ) tempval = -tempval; ! lfoSample.lfoValue = clip((lfoRes * 2 - tempval) * lfoAmp ! / lfoRes / 2 ! + lfoOffs, 0, 127, &cl); ! lfoSample.lfoTick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); lt += step; ! lfoval += lfoFreq; ! lfoval %= lfoRes * 4; } break; case 3: //sawtooth down ! lfoval = 0; ! for (l1 = 0; l1 < lfoSize * lfoRes; l1++) { ! lfoSample.lfoValue = clip((lfoRes * 4 - lfoval) ! * lfoAmp / lfoRes / 4 ! + lfoOffs, 0, 127, &cl); ! lfoSample.lfoTick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); lt+=step; ! lfoval += lfoFreq; ! lfoval %= lfoRes * 4; } break; case 4: //square ! for (l1 = 0; l1 < lfoSize * lfoRes; l1++) { ! lfoSample.lfoValue = clip(lfoAmp * ((l1 * lfoFreq / 2 ! / lfoRes) % 2 == 0) ! + lfoOffs, 0, 127, &cl); ! lfoSample.lfoTick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); --- 84,132 ---- break; case 1: //sawtooth up ! val = 0; ! for (l1 = 0; l1 < size * res; l1++) { ! lfoSample.value = clip(val * amp / res / 4 ! + offs, 0, 127, &cl); ! lfoSample.tick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); lt += step; ! val += freq; ! val %= res * 4; } break; case 2: //triangle ! val = 0; ! for (l1 = 0; l1 < size * res; l1++) { ! tempval = val - res * 2; if (tempval < 0 ) tempval = -tempval; ! lfoSample.value = clip((res * 2 - tempval) * amp ! / res / 2 + offs, 0, 127, &cl); ! lfoSample.tick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); lt += step; ! val += freq; ! val %= res * 4; } break; case 3: //sawtooth down ! val = 0; ! for (l1 = 0; l1 < size * res; l1++) { ! lfoSample.value = clip((res * 4 - val) ! * amp / res / 4 + offs, 0, 127, &cl); ! lfoSample.tick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); lt+=step; ! val += freq; ! val %= res * 4; } break; case 4: //square ! for (l1 = 0; l1 < size * res; l1++) { ! lfoSample.value = clip(amp * ((l1 * freq / 2 ! / res) % 2 == 0) + offs, 0, 127, &cl); ! lfoSample.tick = lt; lfoSample.muted = muteMask.at(l1); lfoData.append(lfoSample); *************** *** 146,151 **** break; } ! lfoSample.lfoValue = -1; ! lfoSample.lfoTick = lt; lfoData.append(lfoSample); *p_lfoData = lfoData; --- 141,146 ---- break; } ! lfoSample.value = -1; ! lfoSample.tick = lt; lfoData.append(lfoSample); *p_lfoData = lfoData; *************** *** 158,167 **** int l1 = 0; int lt = 0; ! int step = TICKS_PER_QUARTER / lfoRes; LfoSample lfoSample; ! lfoSample.lfoValue = 63; customWave.clear(); ! for (l1 = 0; l1 < lfoSize * lfoRes; l1++) { ! lfoSample.lfoTick = lt; lfoSample.muted = muteMask.at(l1); customWave.append(lfoSample); --- 153,162 ---- int l1 = 0; int lt = 0; ! int step = TICKS_PER_QUARTER / res; LfoSample lfoSample; ! lfoSample.value = 63; customWave.clear(); ! for (l1 = 0; l1 < size * res; l1++) { ! lfoSample.tick = lt; lfoSample.muted = muteMask.at(l1); customWave.append(lfoSample); *************** *** 188,202 **** void MidiLfo::updateFrequency(int val) { ! lfoFreq = val; } void MidiLfo::updateAmplitude(int val) { ! lfoAmp = val; } void MidiLfo::updateOffset(int val) { ! lfoOffs = val; } --- 183,197 ---- void MidiLfo::updateFrequency(int val) { ! freq = val; } void MidiLfo::updateAmplitude(int val) { ! amp = val; } void MidiLfo::updateOffset(int val) { ! offs = val; } *************** *** 209,216 **** { LfoSample lfoSample; ! lfoSample = customWave.at(mouseX * lfoRes * lfoSize); ! lfoSample.lfoValue = mouseY * 128; ! lfoSample.lfoTick = mouseX * TICKS_PER_QUARTER * lfoSize; ! customWave.replace(mouseX * lfoRes * lfoSize, lfoSample); } --- 204,211 ---- { LfoSample lfoSample; ! lfoSample = customWave.at(mouseX * res * size); ! lfoSample.value = mouseY * 128; ! lfoSample.tick = mouseX * TICKS_PER_QUARTER * size; ! customWave.replace(mouseX * res * size, lfoSample); } *************** *** 220,232 **** int l1 = 0; int os; ! int step = TICKS_PER_QUARTER / lfoRes; LfoSample lfoSample; os = customWave.count(); ! customWave.resize(lfoSize * lfoRes); ! muteMask.resize(lfoSize * lfoRes); for (l1 = 0; l1 < customWave.count(); l1++) { lfoSample = customWave.at(l1 % os); ! lfoSample.lfoTick = lt; lfoSample.muted = muteMask.at(l1); customWave.replace(l1, lfoSample); --- 215,227 ---- int l1 = 0; int os; ! int step = TICKS_PER_QUARTER / res; LfoSample lfoSample; os = customWave.count(); ! customWave.resize(size * res); ! muteMask.resize(size * res); for (l1 = 0; l1 < customWave.count(); l1++) { lfoSample = customWave.at(l1 % os); ! lfoSample.tick = lt; lfoSample.muted = muteMask.at(l1); customWave.replace(l1, lfoSample); *************** *** 239,248 **** LfoSample lfoSample; bool m; ! m = muteMask.at(mouseX * lfoRes * lfoSize); ! muteMask.replace(mouseX * lfoRes * lfoSize, !m); if (waveFormIndex == 5) { ! lfoSample = customWave.at(mouseX * lfoRes * lfoSize); lfoSample.muted = !m; ! customWave.replace(mouseX * lfoRes * lfoSize, lfoSample); } } --- 234,243 ---- LfoSample lfoSample; bool m; ! m = muteMask.at(mouseX * res * size); ! muteMask.replace(mouseX * res * size, !m); if (waveFormIndex == 5) { ! lfoSample = customWave.at(mouseX * res * size); lfoSample.muted = !m; ! customWave.replace(mouseX * res * size, lfoSample); } } Index: midilfo.h =================================================================== RCS file: /cvsroot/alsamodular/qmidiarp/src/midilfo.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** midilfo.h 27 Oct 2009 21:52:21 -0000 1.3 --- midilfo.h 28 Oct 2009 07:56:29 -0000 1.4 *************** *** 30,35 **** struct LfoSample { ! int lfoValue; ! int lfoTick; bool muted; }; --- 30,35 ---- struct LfoSample { ! int value; ! int tick; bool muted; }; *************** *** 49,54 **** int channelOut; bool hold, isMuted; ! int lfoFreq, lfoAmp, lfoOffs, lfoCCnumber; ! int lfoSize, lfoRes, waveFormIndex; signals: --- 49,54 ---- int channelOut; bool hold, isMuted; ! int freq, amp, offs, ccnumber; ! int size, res, waveFormIndex; signals: Index: lfoscreen.h =================================================================== RCS file: /cvsroot/alsamodular/qmidiarp/src/lfoscreen.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** lfoscreen.h 27 Oct 2009 21:52:21 -0000 1.3 --- lfoscreen.h 28 Oct 2009 07:56:29 -0000 1.4 *************** *** 41,45 **** public slots: ! void updateLfoScreen(QVector<LfoSample> lfoData); void mouseMoveEvent(QMouseEvent* event); void mousePressEvent(QMouseEvent* event); --- 41,45 ---- public slots: ! void updateScreen(QVector<LfoSample> lfoData); void mouseMoveEvent(QMouseEvent* event); void mousePressEvent(QMouseEvent* event); Index: seqdriver.cpp =================================================================== RCS file: /cvsroot/alsamodular/qmidiarp/src/seqdriver.cpp,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** seqdriver.cpp 27 Oct 2009 21:52:21 -0000 1.26 --- seqdriver.cpp 28 Oct 2009 07:56:29 -0000 1.27 *************** *** 141,158 **** if ((int)tick >= (lastLfoTick[l1] + lfoPacketSize[l1])) { midiLfoList->at(l1)->getData(&lfoData); ! lfoccnumber = midiLfoList->at(l1)->lfoCCnumber; lfochannel = midiLfoList->at(l1)->channelOut; lfoport = midiLfoList->at(l1)->portOut; if (!midiLfoList->at(l1)->isMuted) { l2 = 0; ! while (lfoData.at(l2).lfoValue > -1) { if (!lfoData.at(l2).muted) { snd_seq_ev_clear(&evOut); snd_seq_ev_set_controller(&evOut, 0, lfoccnumber, ! lfoData.at(l2).lfoValue); evOut.data.control.channel = lfochannel; snd_seq_ev_schedule_real(&evOut, queue_id, 0, ! tickToDelta(lfoData.at(l2).lfoTick + nextLfoTick)); snd_seq_ev_set_subs(&evOut); snd_seq_ev_set_source(&evOut, --- 141,158 ---- if ((int)tick >= (lastLfoTick[l1] + lfoPacketSize[l1])) { midiLfoList->at(l1)->getData(&lfoData); ! lfoccnumber = midiLfoList->at(l1)->ccnumber; lfochannel = midiLfoList->at(l1)->channelOut; lfoport = midiLfoList->at(l1)->portOut; if (!midiLfoList->at(l1)->isMuted) { l2 = 0; ! while (lfoData.at(l2).value > -1) { if (!lfoData.at(l2).muted) { snd_seq_ev_clear(&evOut); snd_seq_ev_set_controller(&evOut, 0, lfoccnumber, ! lfoData.at(l2).value); evOut.data.control.channel = lfochannel; snd_seq_ev_schedule_real(&evOut, queue_id, 0, ! tickToDelta(lfoData.at(l2).tick + nextLfoTick)); snd_seq_ev_set_subs(&evOut); snd_seq_ev_set_source(&evOut, *************** *** 164,168 **** } lastLfoTick[l1] += lfoPacketSize[l1]; ! lfoPacketSize[l1] = lfoData.last().lfoTick; if (!l1) lfoMinPacketSize = lfoPacketSize[l1]; else if (lfoPacketSize[l1] < lfoMinPacketSize) --- 164,168 ---- } lastLfoTick[l1] += lfoPacketSize[l1]; ! lfoPacketSize[l1] = lfoData.last().tick; if (!l1) lfoMinPacketSize = lfoPacketSize[l1]; else if (lfoPacketSize[l1] < lfoMinPacketSize) |