Sending proper Program Change MIDI message

This commit is contained in:
Robert Bendun 2022-11-28 02:12:25 +01:00
parent 7f73f3dcad
commit 2630dff5ac
3 changed files with 132 additions and 129 deletions

View File

@ -7,11 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
## [0.3.1]
### Fixed
- release build script was producing executable with wrong path
- `examples/for-elise.mq` had bug in it
- in error reporting printing garbage instead of function name was fixed
- sending proper program change message
## [0.3.0]

View File

@ -4,161 +4,161 @@ This may be unsupported by your device.
---------------------------------------------------------
-- Piano ------------------------------------------------
AcousticGrandPiano := 0;
BrightAcousticPiano := 1;
ElectricGrandPiano := 2;
HonkyTonkPiano := 3;
RhodesPiano := 4;
ChorusedPiano := 5;
Harpsichord := 6;
Clavinet := 7;
AcousticGrandPiano := 0,
BrightAcousticPiano := 1,
ElectricGrandPiano := 2,
HonkyTonkPiano := 3,
RhodesPiano := 4,
ChorusedPiano := 5,
Harpsichord := 6,
Clavinet := 7,
-- Chromatic percussion ---------------------------------
Celesta := 8;
Glockenspiel := 9;
MusicBox := 10;
Vibraphone := 11;
Marimba := 12;
Xylophone := 13;
TubularBells := 14;
Dulcimer := 15;
Celesta := 8,
Glockenspiel := 9,
MusicBox := 10,
Vibraphone := 11,
Marimba := 12,
Xylophone := 13,
TubularBells := 14,
Dulcimer := 15,
-- Organ ------------------------------------------------
HammondOrgan := 16;
PercussiveOrgan := 17;
RockOrgan := 18;
ChurchOrgan := 19;
ReedOrgan := 20;
Accordion := 21;
Harmonica := 22;
TangoAccordion := 23;
HammondOrgan := 16,
PercussiveOrgan := 17,
RockOrgan := 18,
ChurchOrgan := 19,
ReedOrgan := 20,
Accordion := 21,
Harmonica := 22,
TangoAccordion := 23,
-- Guitar -----------------------------------------------
AcousticGuitarNylon := 24;
AcousticGuitarSteel := 25;
ElectricGuitarJazz := 26;
ElectricGuitarClean := 27;
ElectricGuitarMuted := 28;
OverdrivenGuitar := 29;
DistortionGuitar := 30;
GuitarHarmonics := 31;
AcousticGuitarNylon := 24,
AcousticGuitarSteel := 25,
ElectricGuitarJazz := 26,
ElectricGuitarClean := 27,
ElectricGuitarMuted := 28,
OverdrivenGuitar := 29,
DistortionGuitar := 30,
GuitarHarmonics := 31,
-- Bass -------------------------------------------------
AcousticBass := 32;
ElectricBassFingered := 33;
ElectricBassPicked := 34;
FretlessBass := 35;
SlapBass1 := 36;
SlapBass2 := 37;
SynthBass1 := 38;
SynthBass2 := 39;
AcousticBass := 32,
ElectricBassFingered := 33,
ElectricBassPicked := 34,
FretlessBass := 35,
SlapBass1 := 36,
SlapBass2 := 37,
SynthBass1 := 38,
SynthBass2 := 39,
-- Solo strings -----------------------------------------
Violin := 40;
Viola := 41;
Cello := 42;
Contrabass := 43;
TremoloStrings := 44;
PizzicatoStrings := 45;
OrchestralHarp := 46;
Timpani := 47;
Violin := 40,
Viola := 41,
Cello := 42,
Contrabass := 43,
TremoloStrings := 44,
PizzicatoStrings := 45,
OrchestralHarp := 46,
Timpani := 47,
-- Ensamble ---------------------------------------------
StringEnsemble1 := 48;
StringEnsemble2 := 49;
SynthStrings1 := 50;
SynthStrings2 := 51;
ChoirAahs := 52;
VoiceOohs := 53;
SynthVoice := 54;
OrchestraHit := 55;
StringEnsemble1 := 48,
StringEnsemble2 := 49,
SynthStrings1 := 50,
SynthStrings2 := 51,
ChoirAahs := 52,
VoiceOohs := 53,
SynthVoice := 54,
OrchestraHit := 55,
-- Brass ------------------------------------------------
Trumpet := 56;
Trombone := 57;
Tuba := 58;
MutedTrumpet := 59;
FrenchHorn := 60;
BrassSection := 61;
SynthBrass1 := 62;
SynthBrass2 := 63;
Trumpet := 56,
Trombone := 57,
Tuba := 58,
MutedTrumpet := 59,
FrenchHorn := 60,
BrassSection := 61,
SynthBrass1 := 62,
SynthBrass2 := 63,
-- Reed -------------------------------------------------
SopranoSax := 64;
AltoSax := 65;
TenorSax := 66;
BaritoneSax := 67;
Oboe := 68;
EnglishHorn := 69;
Bassoon := 70;
Clarinet := 71;
SopranoSax := 64,
AltoSax := 65,
TenorSax := 66,
BaritoneSax := 67,
Oboe := 68,
EnglishHorn := 69,
Bassoon := 70,
Clarinet := 71,
-- Pipe -------------------------------------------------
Piccolo := 72;
Flute := 73;
Recorder := 74;
PanFlute := 75;
BlownBottle := 76;
Shakuhachi := 77;
Whistle := 78;
Ocarina := 79;
Piccolo := 72,
Flute := 73,
Recorder := 74,
PanFlute := 75,
BlownBottle := 76,
Shakuhachi := 77,
Whistle := 78,
Ocarina := 79,
-- Synth lead -------------------------------------------
Lead1Square := 80;
Lead2Sawtooth := 81;
Lead3Calliope := 82;
Lead4Chiff := 83;
Lead5Charang := 84;
Lead6Voice := 85;
Lead7Fifths := 86;
Lead8BassLead := 87;
Lead1Square := 80,
Lead2Sawtooth := 81,
Lead3Calliope := 82,
Lead4Chiff := 83,
Lead5Charang := 84,
Lead6Voice := 85,
Lead7Fifths := 86,
Lead8BassLead := 87,
-- Synth pad --------------------------------------------
Pad1NewAge := 88;
Pad2Warm := 89;
Pad3Polysynth := 90;
Pad4Choir := 91;
Pad5Bowed := 92;
Pad6Metallic := 93;
Pad7Halo := 94;
Pad8Sweep := 95;
Pad1NewAge := 88,
Pad2Warm := 89,
Pad3Polysynth := 90,
Pad4Choir := 91,
Pad5Bowed := 92,
Pad6Metallic := 93,
Pad7Halo := 94,
Pad8Sweep := 95,
-- Synth effects ----------------------------------------
FX1Train := 96;
FX2Soundtrack := 97;
FX3Crystal := 98;
FX4Atmosphere := 99;
FX5Brightness := 100;
FX6Goblins := 101;
FX7Echoes := 102;
FX8SciFi := 103;
FX1Train := 96,
FX2Soundtrack := 97,
FX3Crystal := 98,
FX4Atmosphere := 99,
FX5Brightness := 100,
FX6Goblins := 101,
FX7Echoes := 102,
FX8SciFi := 103,
-- Ethnic -----------------------------------------------
Sitar := 104;
Banjo := 105;
Shamisen := 106;
Koto := 107;
Kalimba := 108;
Bagpipe := 109;
Fiddle := 110;
Shanai := 111;
Sitar := 104,
Banjo := 105,
Shamisen := 106,
Koto := 107,
Kalimba := 108,
Bagpipe := 109,
Fiddle := 110,
Shanai := 111,
-- Percussive -------------------------------------------
TinkleBell := 112;
Agogo := 113;
SteelDrums := 114;
Woodblock := 115;
TaikoDrum := 116;
MelodicDrum := 117;
SynthDrum := 118;
ReverseCymbal := 119;
TinkleBell := 112,
Agogo := 113,
SteelDrums := 114,
Woodblock := 115,
TaikoDrum := 116,
MelodicDrum := 117,
SynthDrum := 118,
ReverseCymbal := 119,
-- Sound effects ----------------------------------------
GuitarFretNoise := 120;
BreathNoise := 121;
Seashore := 122;
BirdTweet := 123;
TelephoneRing := 124;
Helicopter := 125;
Applause := 126;
Gunshot := 127;
GuitarFretNoise := 120,
BreathNoise := 121,
Seashore := 122,
BirdTweet := 123,
TelephoneRing := 124,
Helicopter := 125,
Applause := 126,
Gunshot := 127,

View File

@ -107,7 +107,7 @@ void midi::Rt_Midi::send_note_off(uint8_t channel, uint8_t note_number, uint8_t
void midi::Rt_Midi::send_program_change(uint8_t channel, uint8_t program)
{
send_message(*output, std::array { std::uint8_t(channel), program });
send_message(*output, std::array { std::uint8_t(Program_Change + channel), program });
}
void midi::Rt_Midi::send_controller_change(uint8_t channel, uint8_t controller_number, uint8_t value)