mirror of https://github.com/AxioDL/amuse.git
Mask out high bit on Tempo changes
This commit is contained in:
parent
83a2bf0b4e
commit
3a7b43a63a
|
@ -675,7 +675,7 @@ std::vector<uint8_t> SongConverter::SongToMIDI(const unsigned char* data, int& v
|
|||
encoder.getResult().push_back(0x51);
|
||||
encoder.getResult().push_back(3);
|
||||
|
||||
uint32_t tempo24 = SBig(60000000 / change.m_tempo);
|
||||
uint32_t tempo24 = SBig(60000000 / (change.m_tempo & 0x7fffffff));
|
||||
for (int i=1 ; i<4 ; ++i)
|
||||
encoder.getResult().push_back(reinterpret_cast<uint8_t*>(&tempo24)[i]);
|
||||
|
||||
|
|
|
@ -354,7 +354,7 @@ bool SongState::initialize(const unsigned char* ptr)
|
|||
else
|
||||
m_tempoPtr = nullptr;
|
||||
|
||||
m_tempo = m_header.m_initialTempo;
|
||||
m_tempo = m_header.m_initialTempo & 0x7fffffff;
|
||||
m_curTick = 0;
|
||||
m_songState = SongPlayState::Playing;
|
||||
|
||||
|
@ -604,7 +604,7 @@ bool SongState::advance(Sequencer& seq, double dt)
|
|||
if (remTicks <= 0)
|
||||
{
|
||||
/* Turn over tempo */
|
||||
m_tempo = change.m_tempo;
|
||||
m_tempo = change.m_tempo & 0x7fffffff;
|
||||
seq.setTempo(m_tempo * 384 / 60);
|
||||
++m_tempoPtr;
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue