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(0x51);
|
||||||
encoder.getResult().push_back(3);
|
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)
|
for (int i=1 ; i<4 ; ++i)
|
||||||
encoder.getResult().push_back(reinterpret_cast<uint8_t*>(&tempo24)[i]);
|
encoder.getResult().push_back(reinterpret_cast<uint8_t*>(&tempo24)[i]);
|
||||||
|
|
||||||
|
|
|
@ -354,7 +354,7 @@ bool SongState::initialize(const unsigned char* ptr)
|
||||||
else
|
else
|
||||||
m_tempoPtr = nullptr;
|
m_tempoPtr = nullptr;
|
||||||
|
|
||||||
m_tempo = m_header.m_initialTempo;
|
m_tempo = m_header.m_initialTempo & 0x7fffffff;
|
||||||
m_curTick = 0;
|
m_curTick = 0;
|
||||||
m_songState = SongPlayState::Playing;
|
m_songState = SongPlayState::Playing;
|
||||||
|
|
||||||
|
@ -604,7 +604,7 @@ bool SongState::advance(Sequencer& seq, double dt)
|
||||||
if (remTicks <= 0)
|
if (remTicks <= 0)
|
||||||
{
|
{
|
||||||
/* Turn over tempo */
|
/* Turn over tempo */
|
||||||
m_tempo = change.m_tempo;
|
m_tempo = change.m_tempo & 0x7fffffff;
|
||||||
seq.setTempo(m_tempo * 384 / 60);
|
seq.setTempo(m_tempo * 384 / 60);
|
||||||
++m_tempoPtr;
|
++m_tempoPtr;
|
||||||
continue;
|
continue;
|
||||||
|
|
Loading…
Reference in New Issue