Hey Lee,
I’ve encountered somewhat of a bug in the bank switching. I plan to have a look at your code today to see if I can find the issue but basically, on a program change to any bank file other than 1, the app loads each sample twice. Here’s the log from the MIOS output:
[687681.600] MIDI Program Change received - Changing bank to 2
[687681.600] Opening new sample bank
[687681.600] Opening bank file bank.2
[687681.602] Sample no 0, filename is: G1FLT.raw, midi note value=0x37, decay value 0, hold=0
[687681.604] Sample no 1, filename is: G1FLT.raw, midi note value=0x37, decay value 0, hold=0
[687681.606] Sample no 2, filename is: G#1FLT.raw, midi note value=0x38, decay value 0, hold=0
[687681.608] Sample no 3, filename is: G#1FLT.raw, midi note value=0x38, decay value 0, hold=0
[687681.610] Sample no 4, filename is: A1FLT.raw, midi note value=0x39, decay value 0, hold=0
[687681.612] Sample no 5, filename is: A1FLT.raw, midi note value=0x39, decay value 0, hold=0
[687681.612] Sample no 6, filename is: A#1FLT.raw, midi note value=0x3a, decay value 0, hold=0
[687681.614] Sample no 7, filename is: A#1FLT.raw, midi note value=0x3a, decay value 0, hold=0
[687681.616] Sample no 8, filename is: B1FLT.raw, midi note value=0x3b, decay value 0, hold=0
[687681.618] Sample no 9, filename is: B1FLT.raw, midi note value=0x3b, decay value 0, hold=0
[687681.620] Sample no 10, filename is: C2FLT.raw, midi note value=0x3c, decay value 0, hold=0
[687681.622] Sample no 11, filename is: C2FLT.raw, midi note value=0x3c, decay value 0, hold=0
[687681.624] Sample no 12, filename is: C#2FLT.raw, midi note value=0x3d, decay value 0, hold=0
[687681.626] Sample no 13, filename is: C#2FLT.raw, midi note value=0x3d, decay value 0, hold=0
[687681.628] Sample no 14, filename is: D2FLT.raw, midi note value=0x3e, decay value 0, hold=0
[687681.630] Sample no 15, filename is: D2FLT.raw, midi note value=0x3e, decay value 0, hold=0
[687681.632] Sample no 16, filename is: D#2FLT.raw, midi note value=0x3f, decay value 0, hold=0
[687681.634] Sample no 17, filename is: D#2FLT.raw, midi note value=0x3f, decay value 0, hold=0
[687681.636] Sample no 18, filename is: E2FLT.raw, midi note value=0x40, decay value 0, hold=0
[687681.638] Sample no 19, filename is: E2FLT.raw, midi note value=0x40, decay value 0, hold=0
[687681.640] Sample no 20, filename is: F2FLT.raw, midi note value=0x41, decay value 0, hold=0
[687681.642] Sample no 21, filename is: F2FLT.raw, midi note value=0x41, decay value 0, hold=0
[687681.644] Sample no 22, filename is: F#2FLT.raw, midi note value=0x42, decay value 0, hold=0
[687681.646] Sample no 23, filename is: F#2FLT.raw, midi note value=0x42, decay value 0, hold=0
[687681.648] Sample no 24, filename is: G2FLT.raw, midi note value=0x43, decay value 0, hold=0
[687681.648] Sample no 25, filename is: G2FLT.raw, midi note value=0x43, decay value 0, hold=0
[687681.650] Sample no 26, filename is: G#2FLT.raw, midi note value=0x44, decay value 0, hold=0
[687681.652] Sample no 27, filename is: G#2FLT.raw, midi note value=0x44, decay value 0, hold=0
[687681.654] Sample no 28, filename is: A2FLT.raw, midi note value=0x45, decay value 0, hold=0
[687681.656] Sample no 29, filename is: A2FLT.raw, midi note value=0x45, decay value 0, hold=0
[687681.658] Sample no 30, filename is: A#2FLT.raw, midi note value=0x46, decay value 0, hold=0
[687681.660] Sample no 31, filename is: A#2FLT.raw, midi note value=0x46, decay value 0, hold=0
[687681.662] Sample no 32, filename is: B2FLT.raw, midi note value=0x47, decay value 0, hold=0
[687681.664] Sample no 33, filename is: B2FLT.raw, midi note value=0x47, decay value 0, hold=0
[687681.666] Sample no 34, filename is: C3FLT.raw, midi note value=0x48, decay value 0, hold=0
[687681.668] Sample no 35, filename is: C3FLT.raw, midi note value=0x48, decay value 0, hold=0
[687681.670] Sample no 36, filename is: C#3FLT.raw, midi note value=0x49, decay value 0, hold=0
[687681.672] Sample no 37, filename is: C#3FLT.raw, midi note value=0x49, decay value 0, hold=0
[687681.674] Sample no 38, filename is: D3FLT.raw, midi note value=0x4a, decay value 0, hold=0
[687681.676] Sample no 39, filename is: D3FLT.raw, midi note value=0x4a, decay value 0, hold=0
[687681.678] Sample no 40, filename is: D#3FLT.raw, midi note value=0x4b, decay value 0, hold=0
[687681.680] Sample no 41, filename is: D#3FLT.raw, midi note value=0x4b, decay value 0, hold=0
[687681.682] Sample no 42, filename is: E3FLT.raw, midi note value=0x4c, decay value 0, hold=0
[687681.684] Sample no 43, filename is: E3FLT.raw, midi note value=0x4c, decay value 0, hold=0
[687681.686] Sample no 44, filename is: F3FLT.raw, midi note value=0x4d, decay value 0, hold=0
[687681.686] Sample no 45, filename is: F3FLT.raw, midi note value=0x4d, decay value 0, hold=0
[687681.688] Sample no 46, filename is: F#3FLT.raw, midi note value=0x4e, decay value 0, hold=0
[687681.690] Sample no 47, filename is: F#3FLT.raw, midi note value=0x4e, decay value 0, hold=0
[687681.692] Sample no 48, filename is: G3FLT.raw, midi note value=0x4f, decay value 0, hold=0
[687681.694] Sample no 49, filename is: G3FLT.raw, midi note value=0x4f, decay value 0, hold=0
[687681.696] Sample no 50, filename is: G#3FLT.raw, midi note value=0x50, decay value 0, hold=0
[687681.698] Sample no 51, filename is: G#3FLT.raw, midi note value=0x50, decay value 0, hold=0
[687681.700] Sample no 52, filename is: A3FLT.raw, midi note value=0x51, decay value 0, hold=0
[687681.702] Sample no 53, filename is: A3FLT.raw, midi note value=0x51, decay value 0, hold=0
[687681.704] Sample no 54, filename is: A#3FLT.raw, midi note value=0x52, decay value 0, hold=0
[687681.706] Sample no 55, filename is: A#3FLT.raw, midi note value=0x52, decay value 0, hold=0
[687681.708] Sample no 56, filename is: B3FLT.raw, midi note value=0x53, decay value 0, hold=0
[687681.710] Sample no 57, filename is: B3FLT.raw, midi note value=0x53, decay value 0, hold=0
[687681.712] Sample no 58, filename is: C4FLT.raw, midi note value=0x54, decay value 0, hold=0
[687681.714] Sample no 59, filename is: C4FLT.raw, midi note value=0x54, decay value 0, hold=0
[687681.716] Sample no 60, filename is: C#4FLT.raw, midi note value=0x55, decay value 0, hold=0
[687681.718] Sample no 61, filename is: C#4FLT.raw, midi note value=0x55, decay value 0, hold=0
[687681.720] Sample no 62, filename is: D4FLT.raw, midi note value=0x56, decay value 0, hold=0
[687681.722] Sample no 63, filename is: D4FLT.raw, midi note value=0x56, decay value 0, hold=0
I haven’t figured out why this is happening. I’m not sure if it’s something you’ve encountered before or maybe there’s something other than the code that’s causing the problem. I’ll let you know if I find anything. Thanks again for your work on this project!