void PlayPanel::setScore(Score* s) { if (cs != 0 && cs == s) return; cs = s; bool enable = cs != 0; volumeSlider->setEnabled(enable); posSlider->setEnabled(enable); tempoSlider->setEnabled(enable); if (cs && seq && seq->canStart()) { setTempo(cs->tempomap()->tempo(0)); setRelTempo(cs->tempomap()->relTempo()); setEndpos(cs->repeatList()->ticks()); int tick = cs->playPos(); heartBeat(tick, tick, 0); } else { setTempo(120.0); setRelTempo(1.0); setEndpos(0); heartBeat(0, 0, 0); updatePosLabel(0); } update(); }
void PlayPanel::relTempoChanged(double d, int) { double relTempo = d * .01; emit relTempoChanged(relTempo); setTempo(seq->curTempo() * relTempo); setRelTempo(relTempo); }
void PlayPanel::relTempoChanged(double d, int) { double relTempo = d * .01; emit relTempoChanged(relTempo); // Snap tempo slider to 100% when it gets close if (relTempo < 1.01 && relTempo > 0.99) { relTempo = 1.00; } setTempo(seq->curTempo() * relTempo); setRelTempo(relTempo); }
void PlayPanel::setScore(Score* s) { if (cs != 0 && cs == s) return; cs = s; if (cs) { MeasureBase* lm = cs->last(); if (lm) setEndpos(lm->tick() + lm->ticks()); } bool enable = cs != 0; volumeSlider->setEnabled(enable); posSlider->setEnabled(enable); tempoSlider->setEnabled(enable); swingStyle->setEnabled(enable); if (cs) { setTempo(cs->tempomap()->tempo(0)); setRelTempo(cs->tempomap()->relTempo()); Measure* m = cs->lastMeasure(); if (m) setEndpos(m ? m->tick() + m->ticks() : 0); int tick = cs->playPos(); heartBeat(tick, tick); } else { setTempo(120.0); setRelTempo(1.0); setEndpos(0); heartBeat(0, 0); } // heartBeat2(seq->getCurTime()); // int tick, utick; // seq->getCurTick(&tick, &utick); // heartBeat(tick, utick); update(); }