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)
_______________________________________________
Linux-audio-dev mailing list
[email protected]
https://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to