[LAD] SysEx data-conversion woes: nibbles and complements (Microwave 2)
julien at mail.upb.de
Thu May 13 09:14:47 CEST 2021
I have a problem. I'm trying to understand the Waldorf Microwave 2/xt's
waveform data dump. The SysEx manual seems clear and direct enough, but I
can't get anywhere.
In short: these synthesizers can load 8bit single cycle waveforms. Only a half
cycle is sent, the second half is created by "mirroring"/negating the first
Wave[64+n] = -Wave[63-n]
To store 8bit samples in the SysEx format, which can only use 7bit, the
samples were split into nibbles. Here's what the SysEx manual says about
conversion to a signed char:
"... Not(e) that samples are not two's complement format, to get a signed
byte, the most significant bit must be flipped:
signed char s = Wave[n]^0x80; ..."
The whole wave dump format is defined as: "f0 3e 0e Dev_id 12 location_1
location_2 "128 bytes of wave data" chksum f7"
index range description
0 0-0f sample1, most significant nibble
1 0-0f sample 1, least significant nibble
Knowing all that, I tried a few things, but still couldn't get any sensible
result. Here's a wave dump of wave 1, which I assume is the sine wave
Complete SysEx dump:
Only the wave data (128 bytes):
Could someone please help me on how to convert one sample from this data and
vice versa, please?
* Website: http://juliencoder.de - for summer is a state of sound
* Youtube: https://www.youtube.com/channel/UCMS4rfGrTwz8W7jhC1Jnv7g
* Audiobombs: https://www.audiobombs.com/users/jeanette_c
* GitHub: https://github.com/jeanette-c
And I love the way with just one whisper
You tell me everything <3
More information about the Linux-audio-dev