本文整理汇总了C++中setTempo函数的典型用法代码示例。如果您正苦于以下问题:C++ setTempo函数的具体用法?C++ setTempo怎么用?C++ setTempo使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了setTempo函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: setTempo
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();
}
开发者ID:AndresDose,项目名称:MuseScore,代码行数:25,代码来源:playpanel.cpp
示例2: TrackContainer
Song::Song() :
TrackContainer(),
m_globalAutomationTrack( dynamic_cast<AutomationTrack *>(
Track::create( Track::HiddenAutomationTrack,
this ) ) ),
m_tempoModel( DefaultTempo, MinTempo, MaxTempo, this, tr( "Tempo" ) ),
m_timeSigModel( this ),
m_oldTicksPerTact( DefaultTicksPerTact ),
m_masterVolumeModel( 100, 0, 200, this, tr( "Master volume" ) ),
m_masterPitchModel( 0, -12, 12, this, tr( "Master pitch" ) ),
m_fileName(),
m_oldFileName(),
m_modified( false ),
m_loadOnLaunch( true ),
m_recording( false ),
m_exporting( false ),
m_exportLoop( false ),
m_renderBetweenMarkers( false ),
m_playing( false ),
m_paused( false ),
m_loadingProject( false ),
m_isCancelled( false ),
m_playMode( Mode_None ),
m_length( 0 ),
m_patternToPlay( NULL ),
m_loopPattern( false ),
m_elapsedTicks( 0 ),
m_elapsedTacts( 0 ),
m_loopRenderCount(1),
m_loopRenderRemaining(1)
{
for(int i = 0; i < Mode_Count; ++i) m_elapsedMilliSeconds[i] = 0;
connect( &m_tempoModel, SIGNAL( dataChanged() ),
this, SLOT( setTempo() ), Qt::DirectConnection );
connect( &m_tempoModel, SIGNAL( dataUnchanged() ),
this, SLOT( setTempo() ), Qt::DirectConnection );
connect( &m_timeSigModel, SIGNAL( dataChanged() ),
this, SLOT( setTimeSignature() ), Qt::DirectConnection );
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ), this,
SLOT( updateFramesPerTick() ) );
connect( &m_masterVolumeModel, SIGNAL( dataChanged() ),
this, SLOT( masterVolumeChanged() ), Qt::DirectConnection );
/* connect( &m_masterPitchModel, SIGNAL( dataChanged() ),
this, SLOT( masterPitchChanged() ) );*/
qRegisterMetaType<Note>( "Note" );
setType( SongContainer );
}
开发者ID:LMMS,项目名称:lmms,代码行数:51,代码来源:Song.cpp
示例3: m_plugin
VstPlugin::VstPlugin( const QString & _plugin ) :
m_plugin( _plugin ),
m_pluginWindowID( 0 ),
m_embedMethod( gui
? ConfigManager::inst()->vstEmbedMethod()
: "headless" ),
m_version( 0 ),
m_currentProgram()
{
if( QDir::isRelativePath( m_plugin ) )
{
m_plugin = ConfigManager::inst()->vstDir() + m_plugin;
}
setSplittedChannels( true );
PE::MachineType machineType;
try {
PE::FileInfo peInfo(m_plugin);
machineType = peInfo.machineType();
} catch (std::runtime_error& e) {
qCritical() << "Error while determining PE file's machine type: " << e.what();
machineType = PE::MachineType::unknown;
}
switch(machineType)
{
case PE::MachineType::amd64:
tryLoad( REMOTE_VST_PLUGIN_FILEPATH_64 ); // Default: RemoteVstPlugin64
break;
case PE::MachineType::i386:
tryLoad( REMOTE_VST_PLUGIN_FILEPATH_32 ); // Default: 32/RemoteVstPlugin32
break;
default:
m_failed = true;
return;
}
setTempo( Engine::getSong()->getTempo() );
connect( Engine::getSong(), SIGNAL( tempoChanged( bpm_t ) ),
this, SLOT( setTempo( bpm_t ) ) );
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ),
this, SLOT( updateSampleRate() ) );
// update once per second
m_idleTimer.start( 1000 );
connect( &m_idleTimer, SIGNAL( timeout() ),
this, SLOT( idleUpdate() ) );
}
开发者ID:karmux,项目名称:lmms,代码行数:50,代码来源:VstPlugin.cpp
示例4: qDebug
void MsScWriter::trailer()
{
qDebug() << "MsScWriter::trailer()"
;
if (tempo) setTempo(score, tempo);
}
开发者ID:Angeldude,项目名称:MuseScore,代码行数:7,代码来源:importbww.cpp
示例5: while
void TempoText::read(XmlReader& e)
{
while (e.readNextStartElement()) {
const QStringRef& tag(e.name());
if (tag == "tempo")
setTempo(e.readDouble());
else if (tag == "followText")
_followText = e.readInt();
else if (!Text::readProperties(e))
e.unknown();
}
if (score()->mscVersion() <= 114) {
//
// Reset text in old version to
// style.
//
//TODO if (textStyle() != TextStyleType::INVALID) {
// setStyled(true);
// styleChanged();
// }
}
// check sanity
if (xmlText().isEmpty()) {
setXmlText(QString("<sym>metNoteQuarterUp</sym> = %1").arg(lrint(60 * _tempo)));
setVisible(false);
}
}
开发者ID:xiaojianwu,项目名称:MuseScore,代码行数:27,代码来源:tempotext.cpp
示例6: RehearsalMark
void GuitarPro5::readMeasures(int /*startingTempo*/)
{
Measure* measure = score->firstMeasure();
bool mixChange = false;
for (int bar = 0; bar < measures; ++bar, measure = measure->nextMeasure()) {
const GpBar& gpbar = bars[bar];
if (!gpbar.marker.isEmpty()) {
Text* s = new RehearsalMark(score);
s->setText(gpbar.marker.trimmed());
s->setTrack(0);
Segment* segment = measure->getSegment(Segment::Type::ChordRest, measure->tick());
segment->add(s);
}
Tuplet* tuplets[staves * 2]; // two voices
for (int track = 0; track < staves*2; ++track)
tuplets[track] = 0;
for (int staffIdx = 0; staffIdx < staves; ++staffIdx) {
readMeasure(measure, staffIdx, tuplets, mixChange);
if (!(((bar == (measures-1)) && (staffIdx == (staves-1))))) {
/*int a = */ readChar();
// qDebug(" ======skip %02x", a);
}
}
if (bar == 1 && !mixChange)
setTempo(tempo, score->firstMeasure());
}
}
开发者ID:jpirie,项目名称:MuseScore,代码行数:30,代码来源:importgtp-gp5.cpp
示例7: lock
bool MidiParser_SH::loadMusic(byte *musData, uint32 musDataSize) {
Common::StackLock lock(_mutex);
debugC(kDebugLevelMusic, "Music: loadMusic()");
unloadMusic();
_musData = musData;
_musDataSize = musDataSize;
byte *headerPtr = _musData + 12; // skip over the already checked SPACE header
byte *pos = headerPtr;
uint16 headerSize = READ_LE_UINT16(headerPtr);
assert(headerSize == 0x7F); // Security check
// Skip over header
pos += headerSize;
_lastEvent = 0;
_trackEnd = _musData + _musDataSize;
_numTracks = 1;
_tracks[0] = pos;
_ppqn = 1;
setTempo(16667);
setTrack(0);
return true;
}
开发者ID:mdtrooper,项目名称:scummvm,代码行数:30,代码来源:music.cpp
示例8: relTempoChanged
void PlayPanel::relTempoChanged(double d, int)
{
double relTempo = d * .01;
emit relTempoChanged(relTempo);
setTempo(seq->curTempo() * relTempo);
setRelTempo(relTempo);
}
开发者ID:AndresDose,项目名称:MuseScore,代码行数:8,代码来源:playpanel.cpp
示例9: TrackContainer
song::song() :
TrackContainer(),
m_globalAutomationTrack( dynamic_cast<AutomationTrack *>(
track::create( track::HiddenAutomationTrack,
this ) ) ),
m_tempoModel( DefaultTempo, MinTempo, MaxTempo, this, tr( "Tempo" ) ),
m_timeSigModel( this ),
m_oldTicksPerTact( DefaultTicksPerTact ),
m_masterVolumeModel( 100, 0, 200, this, tr( "Master volume" ) ),
m_masterPitchModel( 0, -12, 12, this, tr( "Master pitch" ) ),
m_fileName(),
m_oldFileName(),
m_modified( false ),
m_recording( false ),
m_exporting( false ),
m_exportLoop( false ),
m_playing( false ),
m_paused( false ),
m_loadingProject( false ),
m_playMode( Mode_None ),
m_length( 0 ),
m_trackToPlay( NULL ),
m_patternToPlay( NULL ),
m_loopPattern( false ),
m_elapsedMilliSeconds( 0 ),
m_elapsedTicks( 0 ),
m_elapsedTacts( 0 )
{
connect( &m_tempoModel, SIGNAL( dataChanged() ),
this, SLOT( setTempo() ) );
connect( &m_tempoModel, SIGNAL( dataUnchanged() ),
this, SLOT( setTempo() ) );
connect( &m_timeSigModel, SIGNAL( dataChanged() ),
this, SLOT( setTimeSignature() ) );
connect( engine::mixer(), SIGNAL( sampleRateChanged() ), this,
SLOT( updateFramesPerTick() ) );
connect( &m_masterVolumeModel, SIGNAL( dataChanged() ),
this, SLOT( masterVolumeChanged() ) );
/* connect( &m_masterPitchModel, SIGNAL( dataChanged() ),
this, SLOT( masterPitchChanged() ) );*/
qRegisterMetaType<note>( "note" );
}
开发者ID:CallisteHanriat,项目名称:lmms,代码行数:46,代码来源:song.cpp
示例10: setTempo
void Song::clear( void )
{
for( int i = 0; i < SongMaxChan; ++i ) channels[ i ]->clear();
startpat = 0;
loopactive = true;
looppos = 1;
loopdest = 0;
setTempo( 140 );
}
开发者ID:fundamental,项目名称:ttrk,代码行数:9,代码来源:song.cpp
示例11: init
MidiClockClass::MidiClockClass() {
init();
mode = OFF;
setTempo(120);
on96Callback = NULL;
on32Callback = NULL;
on16Callback = NULL;
transmit = false;
}
开发者ID:seclorum,项目名称:metalab_sessions,代码行数:9,代码来源:MidiClock.cpp
示例12: tr
void MainWindow::on_action_Set_Tempo_triggered()
{
bool ok;
int tempo = QInputDialog::getInteger(this, tr("Set Tempo"),
tr("Beats Per Minute:"), 60,
30, 120, 1, &ok);
if (ok)
setTempo(tempo);
}
开发者ID:gperciva,项目名称:meaws,代码行数:9,代码来源:mainwindow.cpp
示例13: setTempo
void SequencerController::prepare( float aQueuedTempo, int aTimeSigBeatAmount, int aTimeSigBeatUnit )
{
// calculate buffers and ranges
if ( aQueuedTempo > 0 )
{
setTempo( aQueuedTempo, aTimeSigBeatAmount, aTimeSigBeatUnit );
AudioEngine::handleTempoUpdate( aQueuedTempo, false ); // just to initialize all buffer sizes
setLoopRange( 0, ( AudioEngine::amount_of_bars * AudioEngine::samples_per_bar ) - 1, stepsPerBar );
}
};
开发者ID:igorski,项目名称:MWEngine,代码行数:10,代码来源:sequencercontroller.cpp
示例14: setTempoFromMidiBytes
void setTempoFromMidiBytes(const byte* bytes) {
double tempo = 0.0;
unsigned long beatLengthInMicroseconds = 0;
if(bytes != NULL) {
beatLengthInMicroseconds = 0x00000000 | (bytes[0] << 16) | (bytes[1] << 8) | (bytes[2]);
// Convert beats / microseconds -> beats / minutes
tempo = (1000000.0 / (double)beatLengthInMicroseconds) * 60.0;
setTempo(tempo);
}
}
开发者ID:ZECTBynmo,项目名称:MrsWatson,代码行数:10,代码来源:AudioSettings.c
示例15: relTempoChanged
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);
}
开发者ID:Angeldude,项目名称:MuseScore,代码行数:11,代码来源:playpanel.cpp
示例16: connect
bool MainWindow::setupExercise()
{
connect(exercise_, SIGNAL(updateMain(MainWindowStates)),
this, SLOT(updateMain(MainWindowStates)));
attemptRunningBool = false;
exercise_->setup(centralwidget);
exercise_->setUserInfo(user_);
setupBackend();
setTempo(game_->getTempo());
return true;
}
开发者ID:gperciva,项目名称:meaws,代码行数:11,代码来源:mainwindow.cpp
示例17: setTempo
MidiParser_SH::MidiParser_SH() {
_ppqn = 1;
setTempo(16667);
_data = nullptr;
_beats = 0;
_lastEvent = 0;
_trackEnd = nullptr;
_musData = nullptr;
_musDataSize = 0;
}
开发者ID:mdtrooper,项目名称:scummvm,代码行数:11,代码来源:music.cpp
示例18: unloadMusic
bool MidiParser_S1D::loadMusic(byte *data, uint32 size) {
unloadMusic();
if (!size)
return false;
// The original actually just ignores the first two bytes.
byte *pos = data;
if (*pos == 0xFC) {
// SysEx found right at the start
// this seems to happen since Elvira 2, we ignore it
// 3rd byte after the SysEx seems to be saved into a global
// We expect at least 4 bytes in total
if (size < 4)
return false;
byte skipOffset = pos[2]; // get second byte after the SysEx
// pos[1] seems to have been ignored
// pos[3] is saved into a global inside the original interpreters
// Waxworks + Simon 1 demo typical header is:
// 0xFC 0x29 0x07 0x01 [0x00/0x01]
// Elvira 2 typical header is:
// 0xFC 0x04 0x06 0x06
if (skipOffset >= 6) {
// should be at least 6, so that we skip over the 2 size bytes and the
// smallest SysEx possible
skipOffset -= 2; // 2 size bytes were already read by previous code outside of this method
if (size <= skipOffset) // Skip to the end of file? -> something is not correct
return false;
// Do skip over the bytes
pos += skipOffset;
} else {
warning("MidiParser_S1D: unexpected skip offset in music file");
}
}
// And now we're at the actual data. Only one track.
_numTracks = 1;
_data = pos;
_tracks[0] = pos;
// Note that we assume the original data passed in
// will persist beyond this call, i.e. we do NOT
// copy the data to our own buffer. Take warning....
resetTracking();
setTempo(666667);
setTrack(0);
return true;
}
开发者ID:AReim1982,项目名称:scummvm,代码行数:54,代码来源:midiparser_s1d.cpp
示例19: RemotePlugin
VstPlugin::VstPlugin( const QString & _plugin ) :
RemotePlugin(),
JournallingObject(),
m_plugin( _plugin ),
m_pluginWidget( NULL ),
m_pluginWindowID( 0 ),
m_badDllFormat( false ),
m_name(),
m_version( 0 ),
m_vendorString(),
m_productString(),
m_currentProgramName(),
m_allProgramNames(),
p_name(),
m_currentProgram(),
m_idleTimer()
{
setSplittedChannels( true );
tryLoad( REMOTE_VST_PLUGIN_FILEPATH );
#ifdef LMMS_BUILD_WIN64
if( m_badDllFormat )
{
m_badDllFormat = false;
tryLoad( "32/RemoteVstPlugin32" );
}
#endif
setTempo( Engine::getSong()->getTempo() );
connect( Engine::getSong(), SIGNAL( tempoChanged( bpm_t ) ),
this, SLOT( setTempo( bpm_t ) ) );
connect( Engine::mixer(), SIGNAL( sampleRateChanged() ),
this, SLOT( updateSampleRate() ) );
// update once per second
m_idleTimer.start( 1000 );
connect( &m_idleTimer, SIGNAL( timeout() ),
this, SLOT( idleUpdate() ) );
}
开发者ID:BaraMGB,项目名称:lmms,代码行数:40,代码来源:VstPlugin.cpp
示例20: qDebug
void qtractorTempoSpinBox::stepBy ( int iSteps )
{
#ifdef CONFIG_DEBUG_0
qDebug("qtractorTempoSpinBox[%p]::stepBy(%d)", this, iSteps);
#endif
QLineEdit *pLineEdit = QAbstractSpinBox::lineEdit();
const int iCursorPos = pLineEdit->cursorPosition();
const QString& sText = pLineEdit->text();
if (iCursorPos < sText.section(' ', 0, 0).length() + 1) {
const QChar& decp = QLocale().decimalPoint();
if (iCursorPos > sText.section(decp, 0, 0).length())
setTempo(tempo() + 0.1f * float(iSteps));
else
setTempo(tempo() + float(iSteps));
}
else
if (iCursorPos > sText.section('/', 0, 0).length())
setBeatDivisor(int(beatDivisor()) + iSteps);
else
setBeatsPerBar(int(beatsPerBar()) + iSteps);
}
开发者ID:davidpucheta,项目名称:qtractor,代码行数:22,代码来源:qtractorSpinBox.cpp
注:本文中的setTempo函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论