| Age | Commit message (Collapse) | Author | 
 | 
[ci skip]
 | 
 | 
because it is not supported on Android NDK, yet (even C++11 usagae is enabled!)
 | 
 | 
The field B_transpose on drums means note number, and is no need extra calculations
Here is a right specification for AIL's bank format, gotten from AIL 2 sources which are been published by Miles
```
//GTL - "Global Timbre Bank"
struct GTL Head                  // GTL file header entry structure
{
    uint8_t  patch;
    uint8_t  bank;
    uint32_t offset;
}
//- Length is 6 bytes
//Look for timbre until .patch will equal to 0xFF, then look for each instrument
Note:
    DW - Define Word - uint16_t
    DB - Define Byte - uint8_t
BNK             STRUC           ;.BNK-style timbre definition
B_length        dw ?            ; lenght of timbre entry
B_transpose     db ?
B_mod_AVEKM     db ?            ;op_0 = FM modulator
B_mod_KSLTL     db ?
B_mod_AD        db ?
B_mod_SR        db ?
B_mod_WS        db ?
B_fb_c          db ?
B_car_AVEKM     db ?            ;op_1 = FM carrier
B_car_KSLTL     db ?
B_car_AD        db ?
B_car_SR        db ?
B_car_WS        db ?
                ENDS
OPL3BNK         STRUC           ;.BNK-style OPL3 timbre definition
                BNK <>
O_mod_AVEKM     db ?            ;op_2
O_mod_KSLTL     db ?
O_mod_AD        db ?
O_mod_SR        db ?
O_mod_WS        db ?
O_fb_c          db ?
O_car_AVEKM     db ?            ;op_3
O_car_KSLTL     db ?
O_car_AD        db ?
O_car_SR        db ?
O_car_WS        db ?
                ENDS
```
 | 
 | 
(when bass drums are taking too high tone)
 | 
 | 
MUS playing was totally invalid: the MUS data are completely different from regular MIDI data. Now is added a right converter which results a MIDI data which can be played correctly.
 | 
 | 
 | 
 | 
Now this bank is finally works fine!
 | 
 | 
Using BNKs directly results a wrong pitch for the drums and set is incompatible with General Midi, so, some drums has been swapped and copy-pasted
 | 
 | 
other code has been moved into separated files
 | 
 | 
(to allow banks play sound be more native like to their original implementations)
 | 
 | 
 | 
 | 
(including this header into Qt application will cause error, because "slots" in Qt just an dummy macro)
 | 
 | 
Fixed wrong generated sound in some cases.
DBOPL has own constructors to initialize it's fields. memset no need here
 | 
 | 
(this member is already initialized in constructor!)
 | 
 | 
 | 
 | 
 | 
 | 
- (to prevent a weird crash caused by track with no events inside)
Also attempt to fix issue #4
 | 
 | 
(because after std::vector's resize, contents is uninitialized, Valgrind has been confirmed that)
 | 
 | 
 | 
 | 
Small experiment with macros and inlines at first.
I think, is a time to review DosBox's code for optimization tricks to apply on the Nuked
 | 
 | 
 | 
 | 
Also:
 - Fixed warnings in the CLang code model plugin for Qt Creator
 - Fixed bend coefficient which caused incorrect hi-hats in DMX banks
 | 
 | 
 | 
 | 
 | 
 | 
- Added support of playing CMF files
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
# Conflicts:
#	src/adldata.cpp
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
(my previous implementation of fget() initator sucks, it must return unsigned char inside signed integer container to be able return "-1" on eof)
 | 
 | 
 | 
 | 
(old IBK with modded bank has been replaced with better OP3 file)
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
- Fixed freezing on invalid loop points (instead, ignore them!)
- Optimized output generating
- Instead of 16-bit samples stored into array of 32-bit integers, return true PCM-16bit for convenience and with no confusion!
 | 
 | 
Not only via callback funtion pointer
 | 
 | 
 | 
 | 
- small work over updated drum bank
- set usage of Duke Nukem 3D's drum bank to O'Connel's (66) and to Ultimate Soccer Manager's (48) banks
 |