aboutsummaryrefslogtreecommitdiff
path: root/src/adlmidi_midiplay.hpp
diff options
context:
space:
mode:
authorWohlstand <admin@wohlnet.ru>2020-09-02 22:49:04 +0300
committerWohlstand <admin@wohlnet.ru>2020-09-02 22:49:04 +0300
commitd29b0cacf3e7a1da793fc2692a958dcf6c4b9c75 (patch)
tree38397165639eec8a5e6369b2a6aca733d6e6dd06 /src/adlmidi_midiplay.hpp
parentefdf769050aaf344ddac660386009b58fa156ad2 (diff)
downloadlibADLMIDI-d29b0cacf3e7a1da793fc2692a958dcf6c4b9c75.tar.gz
libADLMIDI-d29b0cacf3e7a1da793fc2692a958dcf6c4b9c75.tar.bz2
libADLMIDI-d29b0cacf3e7a1da793fc2692a958dcf6c4b9c75.zip
When playing XMIDI files, set defaults of AIL
- Default volume in AIL is 127 - Default pitch bend sensitivity is a full octave up, and full octave down: MSB=12, LSB=0
Diffstat (limited to 'src/adlmidi_midiplay.hpp')
-rw-r--r--src/adlmidi_midiplay.hpp24
1 files changed, 19 insertions, 5 deletions
diff --git a/src/adlmidi_midiplay.hpp b/src/adlmidi_midiplay.hpp
index f7732fe..93b36e9 100644
--- a/src/adlmidi_midiplay.hpp
+++ b/src/adlmidi_midiplay.hpp
@@ -64,6 +64,10 @@ public:
void partialReset();
void resetMIDI();
+private:
+ void resetMIDIDefaults(int offset = 0);
+
+public:
/**********************Internal structures and classes**********************/
/**
@@ -71,6 +75,13 @@ public:
*/
struct MIDIchannel
{
+ //! Default MIDI volume
+ uint8_t def_volume;
+ //! Default LSB of a bend sensitivity
+ int def_bendsense_lsb;
+ //! Default MSB of a bend sensitivity
+ int def_bendsense_msb;
+
//! LSB Bank number
uint8_t bank_lsb,
//! MSB Bank number
@@ -317,10 +328,10 @@ public:
void resetAllControllers()
{
bend = 0;
- bendsense_msb = 2;
- bendsense_lsb = 0;
+ bendsense_msb = def_bendsense_msb;
+ bendsense_lsb = def_bendsense_lsb;
updateBendSensitivity();
- volume = 100;
+ volume = def_volume;
expression = 127;
sustain = false;
softPedal = false;
@@ -369,8 +380,11 @@ public:
--extended_note_count;
}
- MIDIchannel()
- : activenotes(128)
+ MIDIchannel() :
+ def_volume(100),
+ def_bendsense_lsb(0),
+ def_bendsense_msb(2),
+ activenotes(128)
{
gliding_note_count = 0;
extended_note_count = 0;