store ES5506 params in format
This commit is contained in:
parent
13158b86cf
commit
952a2a66e8
|
@ -32,6 +32,7 @@ these fields are 0 in format versions prior to 100 (0.6pre1).
|
|||
|
||||
the format versions are:
|
||||
|
||||
- 107: Furnace dev107
|
||||
- 106: Furnace dev106
|
||||
- 105: Furnace dev105
|
||||
- 104: Furnace dev104
|
||||
|
@ -850,6 +851,21 @@ size | description
|
|||
--- | **Game Boy extra flags** (>=106)
|
||||
1 | use software envelope
|
||||
1 | always init hard env on new note
|
||||
--- | **ES5506 data** (>=107)
|
||||
1 | filter mode
|
||||
| - 0: HPK2_HPK2
|
||||
| - 1: HPK2_LPK1
|
||||
| - 2: LPK2_LPK2
|
||||
| - 3: LPK2_LPK1
|
||||
2 | K1
|
||||
2 | K2
|
||||
2 | envelope count
|
||||
1 | left volume ramp
|
||||
1 | right volume ramp
|
||||
1 | K1 ramp
|
||||
1 | K2 ramp
|
||||
1 | K1 slow
|
||||
1 | K2 slow
|
||||
```
|
||||
|
||||
# wavetable
|
||||
|
|
|
@ -46,8 +46,8 @@
|
|||
#define BUSY_BEGIN_SOFT softLocked=true; isBusy.lock();
|
||||
#define BUSY_END isBusy.unlock(); softLocked=false;
|
||||
|
||||
#define DIV_VERSION "dev106"
|
||||
#define DIV_ENGINE_VERSION 106
|
||||
#define DIV_VERSION "dev107"
|
||||
#define DIV_ENGINE_VERSION 107
|
||||
|
||||
// for imports
|
||||
#define DIV_VERSION_MOD 0xff01
|
||||
|
|
|
@ -543,6 +543,18 @@ void DivInstrument::putInsData(SafeWriter* w) {
|
|||
w->writeC(gb.softEnv);
|
||||
w->writeC(gb.alwaysInit);
|
||||
|
||||
// ES5506
|
||||
w->writeC(es5506.filter.mode);
|
||||
w->writeS(es5506.filter.k1);
|
||||
w->writeS(es5506.filter.k2);
|
||||
w->writeS(es5506.envelope.ecount);
|
||||
w->writeC(es5506.envelope.lVRamp);
|
||||
w->writeC(es5506.envelope.rVRamp);
|
||||
w->writeC(es5506.envelope.k1Ramp);
|
||||
w->writeC(es5506.envelope.k2Ramp);
|
||||
w->writeC(es5506.envelope.k1Slow);
|
||||
w->writeC(es5506.envelope.k2Slow);
|
||||
|
||||
blockEndSeek=w->tell();
|
||||
w->seek(blockStartSeek,SEEK_SET);
|
||||
w->writeI(blockEndSeek-blockStartSeek-4);
|
||||
|
@ -1111,6 +1123,20 @@ DivDataErrors DivInstrument::readInsData(SafeReader& reader, short version) {
|
|||
gb.alwaysInit=reader.readC();
|
||||
}
|
||||
|
||||
// ES5506
|
||||
if (version>=107) {
|
||||
es5506.filter.mode=(DivInstrumentES5506::Filter::FilterMode)reader.readC();
|
||||
es5506.filter.k1=reader.readS();
|
||||
es5506.filter.k2=reader.readS();
|
||||
es5506.envelope.ecount=reader.readS();
|
||||
es5506.envelope.lVRamp=reader.readC();
|
||||
es5506.envelope.rVRamp=reader.readC();
|
||||
es5506.envelope.k1Ramp=reader.readC();
|
||||
es5506.envelope.k2Ramp=reader.readC();
|
||||
es5506.envelope.k1Slow=reader.readC();
|
||||
es5506.envelope.k2Slow=reader.readC();
|
||||
}
|
||||
|
||||
return DIV_DATA_SUCCESS;
|
||||
}
|
||||
|
||||
|
|
|
@ -468,7 +468,7 @@ struct DivInstrumentSoundUnit {
|
|||
struct DivInstrumentES5506 {
|
||||
struct Filter {
|
||||
enum FilterMode: unsigned char { // filter mode for pole 4,3
|
||||
FILTER_MODE_HPK2_HPK2,
|
||||
FILTER_MODE_HPK2_HPK2=0,
|
||||
FILTER_MODE_HPK2_LPK1,
|
||||
FILTER_MODE_LPK2_LPK2,
|
||||
FILTER_MODE_LPK2_LPK1,
|
||||
|
@ -494,12 +494,9 @@ struct DivInstrumentES5506 {
|
|||
k1Slow(false),
|
||||
k2Slow(false) {}
|
||||
};
|
||||
signed int lVol, rVol;
|
||||
Filter filter;
|
||||
Envelope envelope;
|
||||
DivInstrumentES5506():
|
||||
lVol(0xffff),
|
||||
rVol(0xffff) {}
|
||||
DivInstrumentES5506() {}
|
||||
};
|
||||
|
||||
struct DivInstrument {
|
||||
|
|
Loading…
Reference in New Issue