diff options
author | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-01 01:10:41 +0300 |
---|---|---|
committer | Vitaly Novichkov <admin@wohlnet.ru> | 2018-06-01 01:10:41 +0300 |
commit | 274c9d6b64f8ba8461d398b24c0c6c99f94d03e4 (patch) | |
tree | 4bdd98be1fa580d4705167351828794e9ed9c226 /src/adlmidi_private.cpp | |
parent | 562f5cb9841109dc2ca213ffe976b11576733b79 (diff) | |
download | libADLMIDI-274c9d6b64f8ba8461d398b24c0c6c99f94d03e4.tar.gz libADLMIDI-274c9d6b64f8ba8461d398b24c0c6c99f94d03e4.tar.bz2 libADLMIDI-274c9d6b64f8ba8461d398b24c0c6c99f94d03e4.zip |
Improve the automatic 4op channels count choosing formula
Diffstat (limited to 'src/adlmidi_private.cpp')
-rw-r--r-- | src/adlmidi_private.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/adlmidi_private.cpp b/src/adlmidi_private.cpp index 7a8b3b2..83a40aa 100644 --- a/src/adlmidi_private.cpp +++ b/src/adlmidi_private.cpp @@ -61,10 +61,25 @@ int adlRefreshNumCards(ADL_MIDIPlayer *device) } } + unsigned NumFourOps = 0; + // All 2ops (no 4ops) + if((n_fourop[0] == 0) && (n_fourop[1] == 0)) + NumFourOps = 0; + // All 2op melodics and Some (or All) 4op drums + else if((n_fourop[0] == 0) && (n_fourop[1] > 0)) + NumFourOps = (play->m_setup.NumCards == 1) ? 2 : play->m_setup.NumCards * 4; + // Many 4op melodics + else if((n_fourop[0] >= (n_total[0] * 7) / 8)) + NumFourOps = play->m_setup.NumCards * 6; + // Few 4op melodics + else if(n_fourop[0] > 0) + NumFourOps = play->m_setup.NumCards * 4; + +/* //Old formula unsigned NumFourOps = ((n_fourop[0] == 0) && (n_fourop[1] == 0)) ? 0 : (n_fourop[0] >= (n_total[0] * 7) / 8) ? play->m_setup.NumCards * 6 - : (n_fourop[0] < (n_total[0] * 1) / 8) ? 0 : (play->m_setup.NumCards == 1 ? 1 : play->m_setup.NumCards * 4); +*/ play->opl.NumFourOps = play->m_setup.NumFourOps = NumFourOps; |