Age | Commit message (Collapse) | Author |
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
with "NO_OLDNAMES" included <sstream> causes "::iswblank not declared" error
|