本文整理汇总了C++中Hydrogen::getTickPosition方法的典型用法代码示例。如果您正苦于以下问题:C++ Hydrogen::getTickPosition方法的具体用法?C++ Hydrogen::getTickPosition怎么用?C++ Hydrogen::getTickPosition使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Hydrogen
的用法示例。
在下文中一共展示了Hydrogen::getTickPosition方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleNoteOffMessage
void MidiInput::handleNoteOffMessage( const MidiMessage& msg )
{
// INFOLOG( "handleNoteOffMessage" );
if ( Preferences::get_instance()->m_bMidiNoteOffIgnore ) {
return;
}
Hydrogen *pEngine = Hydrogen::get_instance();
Song *pSong = pEngine->getSong();
__noteOffTick = pEngine->getTickPosition();
unsigned long notelength = computeDeltaNoteOnOfftime();
int nNote = msg.m_nData1;
//float fVelocity = msg.m_nData2 / 127.0; //we need this in future to controll release velocity
int nInstrument = nNote - 36;
if ( nInstrument < 0 ) {
nInstrument = 0;
}
if ( nInstrument > ( MAX_INSTRUMENTS -1 ) ) {
nInstrument = MAX_INSTRUMENTS - 1;
}
Instrument *pInstr = pSong->get_instrument_list()->get( nInstrument );
float fStep = pow( 1.0594630943593, (nNote -36) );
if ( !Preferences::get_instance()->__playselectedinstrument )
fStep = 1;
if ( Preferences::get_instance()->__playselectedinstrument ){
nInstrument = pEngine->getSelectedInstrumentNumber();
pInstr= pEngine->getSong()->get_instrument_list()->get( pEngine->getSelectedInstrumentNumber());
}
bool use_note_off = AudioEngine::get_instance()->get_sampler()->is_instrument_playing( pInstr );
if(use_note_off){
if ( Preferences::get_instance()->__playselectedinstrument ){
AudioEngine::get_instance()->get_sampler()->midi_keyboard_note_off( msg.m_nData1 );
}else
{
if ( pSong->get_instrument_list()->size() < nInstrument +1 )
return;
Note *offnote = new Note( pInstr,
0.0,
0.0,
0.0,
0.0,
-1,
0 );
offnote->set_note_off( true );
AudioEngine::get_instance()->get_sampler()->note_on( offnote );
}
if(Preferences::get_instance()->getRecordEvents())
AudioEngine::get_instance()->get_sampler()->setPlayingNotelength( pInstr, notelength * fStep, __noteOnTick );
}
}