Page 1 of 3

Restarting the Fizmo Project

Posted: Tue Sep 13, 2011 5:06 am
by cornutt
About a year and a half ago, I was working on trying to reverse engineer the Fizmo patch dump sysex format. But I got frustrated with it -- I was trying to do everything by eyeball, looking through hex dumps of sysex strings. So I, er, put it on the back burner for a while. A long while. I had the idea that I would write a C program that would help me parse out and find differences in the dumps, but it was just too much work.

Last week, it occurred to me how I could use some OSX standard utilities to build a shell script that would do a lot of the work. An hour's worth of tinkering with shell scripts, and voila. I can now dump a preset, change a parameter, dump it again, and my shell script will identify the bytes that changed and show me the differences. So I'm finally making progress. I've identified about 40 parameters so far.

What I've found out: For starters, the preset dump sysex is about 3000 bytes long. It consists of four dumps of the four source sounds that are included in each preset; each sound source dump is 640 bytes. And then there are some more parameters that are global to the whole preset, mainly the effects and arpeggiator settings. I've identified where the four sound source dumps are, and the locations of some flag bytes that identify things like which sounds are on and off, which layers are enabled for editing, and so on. (Also, when you save a preset, it stores the current settings of the F-I-Z-M-O knobs. Did you know that? I didn't.)

What else I've found out: The dump format is an absolute mess. It doesn't look like any effort was made to pack the parameters into an efficient memory structure. Related parameters are in a seemingly random order; byte boundaries are gleefully disregarded, and there are unused bits and bytes scattered around all over the place. You'll see a 7-bit parameter, and instead of fitting neatly into a byte, the first byte will have 6 bits of the parameter plus an unused bit, and and the 7th bit of the parameter will be in the next byte. I thought at first that the extra bits must be used for on/off parameters or flags, but that doesn't appear to be the case; they're just random unused bits. I wondered why it takes 640 bytes to store the 200 or so parameters of one sound. Now I think I'm seeing why.

For those who didn't know: The Fizmo has a whole bunch of parameters that you can't edit from the panel. For example, the three envelopes appear to be ordinary ADSRs, but they're actually 5-segment envelopes. The filter appears to be just an LPF, but it's actually multimode with a number of selectable pole configurations. The keyboard has alternate tuning tables. And so on. The only way to edit these extra parameters, currently, is with a very dodgy version of Sounddiver that Ensoniq cobbed together just before Creative shut them down. There is no documentation of the sysexes or the dump format. My mission is to reverse engineer the sysex strings and then start a project to create a new program for Fizmo patch editing, one that will be open source and sustainable.

Re: Restarting the Fizmo Project

Posted: Tue Sep 13, 2011 5:54 am
by Ry-Fi
As a fellow MIDI editor developer, I like this! Godspeed on your heroic work, my good man! Additionally, as a Fizmo non-owner I should be rather indifferent about the target of your editor, but since I would LOVE to own a Fizmo some day and will strive toward that, I'm very supportive and appreciative on those grounds as well. Nice! :agree: :headbang:

Re: Restarting the Fizmo Project

Posted: Tue Sep 13, 2011 6:52 am
by Cybercardinal
Good work.

Sounds great..will be waiting patiently :)

Re: Restarting the Fizmo Project

Posted: Wed Sep 14, 2011 6:57 pm
by samuraipizzacat29
This is great! If there's any way I can help, I'd be glad to. I'd love to have everything mapped out in sysex so taht I can use an editor of my choice rather than that ancient sounddiver I as of yet haven't got working (also haven't tried too much) on my vista 64 bit.

+1!

Re: Restarting the Fizmo Project

Posted: Thu Sep 15, 2011 4:48 am
by ninja6485
nice!!! great work. funny how stuff hits you after the fact like that

Re: Restarting the Fizmo Project

Posted: Sun Sep 18, 2011 4:59 am
by worstofthewurst
Radical. I've followed your previous work on this and I am really eager to see what you come up with!

Re: Restarting the Fizmo Project

Posted: Mon Sep 19, 2011 11:29 am
by suitandtieguy
cornutt wrote:The Fizmo has a whole bunch of parameters that you can't edit from the panel. For example, the three envelopes appear to be ordinary ADSRs, but they're actually 5-segment envelopes. The filter appears to be just an LPF, but it's actually multimode with a number of selectable pole configurations.
this is exactly why i traded my FIZZMO for a broken Microwave XTK the first chance i got. (and now i'll probably ditch that hot potato for a Blofeld since i don't trust Waldorf gear.)

it wasn't so much there were extra parameters behind the scenes, the front panel was enough. what burned was that there was no way to zero out all of the controls from the front panel, and no actual initialisation parameter or patch.

when i realised that i could only really program it from the ground up by using a computer editor (which i couldn't get working) to zero everything out, i got so angry i almost threw it in the Illinois River a couple blocks from my studio.

hats off and respek, godspeed in your task. the FIZMMO is one of the most interesting synthesisers ever built. i'm just not looking back on this one.

i did record this track before i got rid of it (i actually had it for a year, i just refuse to use factory presets and this is just all i did with it since i figured out why i couldn't zero out the parameters.) the FIZZZMO is doing the quarter-note wavetable arpeggio. it should stick out like a sore thumb.


Re: Restarting the Fizmo Project

Posted: Fri Sep 23, 2011 6:37 pm
by cornutt
suitandtieguy wrote:it wasn't so much there were extra parameters behind the scenes, the front panel was enough. what burned was that there was no way to zero out all of the controls from the front panel, and no actual initialisation parameter or patch.
Yeah, that was one of the first things I discovered that's a PITA... all of the factory patches come with hidden-parameter settings. If you build a patch from scratch from the panel, it will sound different depending on what patch was in that memory location previously, because you can't get rid of some of the hidden parameters
hats off and respek, godspeed in your task. the FIZMMO is one of the most interesting synthesisers ever built. i'm just not looking back on this one.
Thanks, and I understand about yours. I came within an eyelash of selling mine a couple of months ago, because I was unemployed and needed the money, and I had gotten frustrated with it, but I got a new job in the nick of time so I decided to hold on to it. Then I suddenly got the idea for how I could start hacking the sysex dump.

This week, I got all of the envelope parameters laid out. Mercifully, it appears that within a given sound, the two layers use the same parameter layout; it's about the first thing I've come across that wasn't totally wacko. I've had a couple of people write to me suggesting that I take a look at the MR/ZR format. I appreciate the suggestion, but I can tell you that the Fizmo sysex format -- at least the patch dump -- doesn't remotely follow that. The MR/ZR format is nice and orderly and makes sense. The Fizmo format has random bits/bytes that appear to serve no purpose stuck all over the place, and almost nothing lines up on a byte boundary.

Re: Restarting the Fizmo Project

Posted: Sat Sep 24, 2011 11:34 am
by FX23
you dont see fizmos for sale everyday do you. Ive got a spare laptop i was thinking about using it as a programmer, would one of those cheap usb to midi cables do the job?

Re: Restarting the Fizmo Project

Posted: Sun Sep 25, 2011 2:26 am
by cornutt
FX23 wrote:you dont see fizmos for sale everyday do you. Ive got a spare laptop i was thinking about using it as a programmer, would one of those cheap usb to midi cables do the job?
That's what I use. I'm running the Sounddiver on a laptop with Vista, where it works but it's kind of buggy and a pain to set up. If your old laptop still has XP on it, that might work better.

Re: Restarting the Fizmo Project

Posted: Sun Sep 25, 2011 3:09 am
by Ry-Fi
cornutt wrote:The Fizmo format has random bits/bytes that appear to serve no purpose stuck all over the place, and almost nothing lines up on a byte boundary.
I'm imagining how hard it is to reverse engineer stuff that's been packed, split and bit-shifted, and you have my sincere sympathies! But: YOU CAN DO IT!!! You're going to figure out the layout of the entire SysEx spec and you're going to make the only comprehensive de facto Fizmo editor around and be a modern hero! Your smug satisfaction could conceivably be harnessed as a new form of energy. You da man, man!!

=D>

Re: Restarting the Fizmo Project

Posted: Sun Sep 25, 2011 4:31 pm
by FX23
cornutt wrote:
FX23 wrote:you dont see fizmos for sale everyday do you. Ive got a spare laptop i was thinking about using it as a programmer, would one of those cheap usb to midi cables do the job?
That's what I use. I'm running the Sounddiver on a laptop with Vista, where it works but it's kind of buggy and a pain to set up. If your old laptop still has XP on it, that might work better.

is it laid out like the fizmo front panel?

Re: Restarting the Fizmo Project

Posted: Mon Sep 26, 2011 2:43 am
by tallowwaters
FX23 wrote:
cornutt wrote:
FX23 wrote:you dont see fizmos for sale everyday do you. Ive got a spare laptop i was thinking about using it as a programmer, would one of those cheap usb to midi cables do the job?
That's what I use. I'm running the Sounddiver on a laptop with Vista, where it works but it's kind of buggy and a pain to set up. If your old laptop still has XP on it, that might work better.

is it laid out like the fizmo front panel?
No, it's laid out like a Sounddiver editor.

Re: Restarting the Fizmo Project

Posted: Mon Sep 26, 2011 11:24 am
by FX23
you mean like this?

Image

Re: Restarting the Fizmo Project

Posted: Mon Sep 26, 2011 3:40 pm
by Infiltrator
I'd also be highly interested in such an editor. Good good luck with this project and much respect for your work!