[LAD] SysEx data-conversion woes: nibbles and complements (Microwave 2)
    Jeanette C. 
    julien at mail.upb.de
       
    Thu May 13 09:14:47 CEST 2021
    
    
  
Hey hey,
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 
half:
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"
Wave Data:
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:
https://www.dropbox.com/s/v50wq3x55bh52l8/full_wav_dump.syx
Only the wave data (128 bytes):
https://www.dropbox.com/s/q5rcm3cvtfp8cdu/pure_wave_data.dat
Could someone please help me on how to convert one sample from this data and 
vice versa, please?
Best wishes,
Jeanette
-- 
  * 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
(Britney Spears)
    
    
More information about the Linux-audio-dev
mailing list