File tree Expand file tree Collapse file tree 6 files changed +26
-0
lines changed Expand file tree Collapse file tree 6 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -38,6 +38,7 @@ class midisynth {
38
38
virtual const char *midi_synthname (void ) = 0;
39
39
virtual int midi_getprogram (unsigned int channel) = 0;
40
40
virtual bool midi_loadbank (char *filename) { return false ; }
41
+ virtual void midi_resetbank () { }
41
42
virtual int midi_getvoicecount () = 0;
42
43
};
43
44
Original file line number Diff line number Diff line change @@ -39,6 +39,10 @@ void OPL3GM::initializeSettings (bool resetRate)
39
39
{
40
40
setSampleRate (getSampleRate ());
41
41
}
42
+ if (synth)
43
+ {
44
+ synth->midi_resetbank ();
45
+ }
42
46
}
43
47
44
48
bool OPL3GM::getBypass ()
Original file line number Diff line number Diff line change @@ -1558,6 +1558,16 @@ bool ApogeeOPL::midi_loadbank(char *filename)
1558
1558
return AL_LoadBank (filename);
1559
1559
}
1560
1560
1561
+ void ApogeeOPL::midi_resetbank ()
1562
+ {
1563
+ memcpy (&ADLIB_TimbreBank, &FatTimbre, sizeof (FatTimbre));
1564
+ #ifdef _WIN32
1565
+ AL_LoadBank (" C:\\ OPLSynth\\ APOGEE.TMB" );
1566
+ #else
1567
+ AL_LoadBank (" APOGEE.TMB" );
1568
+ #endif
1569
+ }
1570
+
1561
1571
int ApogeeOPL::midi_getvoicecount ()
1562
1572
{
1563
1573
int count = 0 ;
Original file line number Diff line number Diff line change @@ -97,6 +97,7 @@ class ApogeeOPL : public midisynth
97
97
const char *midi_synthname (void );
98
98
int midi_getprogram (unsigned int channel);
99
99
bool midi_loadbank (char *filename);
100
+ void midi_resetbank ();
100
101
int midi_getvoicecount ();
101
102
};
102
103
Original file line number Diff line number Diff line change @@ -1084,6 +1084,15 @@ bool DoomOPL::midi_loadbank(char *filename) {
1084
1084
return LoadInstrumentTable (filename);
1085
1085
}
1086
1086
1087
+ void DoomOPL::midi_resetbank () {
1088
+ memcpy (&lump, &dmx_dmx, sizeof (dmx_dmx));
1089
+ #ifdef _WIN32
1090
+ LoadInstrumentTable (" C:\\ OPLSynth\\ GENMIDI.OP2" );
1091
+ #else
1092
+ LoadInstrumentTable (" GENMIDI.OP2" );
1093
+ #endif
1094
+ }
1095
+
1087
1096
int DoomOPL::midi_getvoicecount () {
1088
1097
return voice_alloced_num;
1089
1098
}
Original file line number Diff line number Diff line change @@ -396,6 +396,7 @@ class DoomOPL : public midisynth {
396
396
const char *midi_synthname (void );
397
397
int midi_getprogram (unsigned int channel);
398
398
bool midi_loadbank (char *filename);
399
+ void midi_resetbank ();
399
400
int midi_getvoicecount ();
400
401
};
401
402
You can’t perform that action at this time.
0 commit comments