diff options
author | JP Cimalando <jpcima@users.noreply.github.com> | 2018-06-19 16:12:27 +0200 |
---|---|---|
committer | JP Cimalando <jpcima@users.noreply.github.com> | 2018-06-19 16:25:36 +0200 |
commit | 3013fbb93b06e8d30b6b54c324340d6dccad7f3b (patch) | |
tree | 8ffbd8d896849ffd418bccf5d429f74e7f63c6d2 /src/adlmidi_midiplay.cpp | |
parent | 70c83caace9911dc5d8b80c1653c96b073f88e4a (diff) | |
download | libADLMIDI-3013fbb93b06e8d30b6b54c324340d6dccad7f3b.tar.gz libADLMIDI-3013fbb93b06e8d30b6b54c324340d6dccad7f3b.tar.bz2 libADLMIDI-3013fbb93b06e8d30b6b54c324340d6dccad7f3b.zip |
get chip base on level with OPNMIDI
Diffstat (limited to 'src/adlmidi_midiplay.cpp')
-rw-r--r-- | src/adlmidi_midiplay.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/adlmidi_midiplay.cpp b/src/adlmidi_midiplay.cpp index 0623ce7..89c1a73 100644 --- a/src/adlmidi_midiplay.cpp +++ b/src/adlmidi_midiplay.cpp @@ -680,7 +680,8 @@ bool MIDIplay::buildTrackData() MIDIplay::MIDIplay(unsigned long sampleRate): cmf_percussion_mode(false), - m_arpeggioCounter(0) + m_arpeggioCounter(0), + m_audioTickCounter(0) #ifndef ADLMIDI_DISABLE_MIDI_SEQUENCER , fullSongTimeLength(0.0), postSongWaitDelay(1.0), @@ -696,6 +697,7 @@ MIDIplay::MIDIplay(unsigned long sampleRate): devices.clear(); m_setup.emulator = ADLMIDI_EMU_NUKED; + m_setup.runAtPcmRate = false; m_setup.PCM_RATE = sampleRate; m_setup.mindelay = 1.0 / (double)m_setup.PCM_RATE; @@ -726,6 +728,8 @@ void MIDIplay::applySetup() { m_setup.tick_skip_samples_delay = 0; + opl.runAtPcmRate = m_setup.runAtPcmRate; + if(opl.AdlBank != ~0u) opl.dynamic_bank_setup = adlbanksetup[m_setup.AdlBank]; @@ -752,7 +756,7 @@ void MIDIplay::applySetup() opl.NumFourOps = m_setup.NumFourOps; cmf_percussion_mode = false; - opl.Reset(m_setup.emulator, m_setup.PCM_RATE); + opl.Reset(m_setup.emulator, m_setup.PCM_RATE, this); ch.clear(); ch.resize(opl.NumChannels); @@ -1435,6 +1439,13 @@ void MIDIplay::realTime_panic() KillSustainingNotes(-1, -1); } +void MIDIplay::AudioTick(uint32_t chipId, uint32_t /*rate*/) +{ + if(chipId != 0) // do first chip ticks only + return; + + /*uint32_t tickNumber = */m_audioTickCounter++; +} void MIDIplay::NoteUpdate(uint16_t MidCh, MIDIplay::MIDIchannel::activenoteiterator i, |