function decodeInstrument(buf: Uint8Array, offset: number): Instrument {
return {
waveform: buf[offset],
ampEnvelope: {
attack: get16BitNumber(buf, offset + 1),
decay: get16BitNumber(buf, offset + 3),
sustain: get16BitNumber(buf, offset + 5),
release: get16BitNumber(buf, offset + 7),
amplitude: get16BitNumber(buf, offset + 9),
},
pitchEnvelope: {
attack: get16BitNumber(buf, offset + 11),
decay: get16BitNumber(buf, offset + 13),
sustain: get16BitNumber(buf, offset + 15),
release: get16BitNumber(buf, offset + 17),
amplitude: get16BitNumber(buf, offset + 19),
},
ampLFO: {
frequency: buf[offset + 21],
amplitude: get16BitNumber(buf, 22) // here
},
pitchLFO: {
frequency: buf[offset + 24],
amplitude: get16BitNumber(buf, 25) // here
},
octave: buf[offset + 27]
}
}
They appear that they should be get16BitNumber(buf, offset + 22) and get16BitNumber(buf, offset + 25) similar to the LFO frequencies and envelopes and waveform.
They appear that they should be
get16BitNumber(buf, offset + 22)andget16BitNumber(buf, offset + 25)similar to the LFO frequencies and envelopes and waveform.