Restarting the Fizmo Project
Forum rules
READ: VSE Board-Wide Rules and Guidelines
READ: VSE Board-Wide Rules and Guidelines
- cornutt
- Moderator
- Posts: 2117
- Joined: Sun Dec 02, 2007 6:03 am
- Gear: 6th
- Location: Rocket City USA
- Contact:
Restarting the Fizmo Project
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.
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.
Switches, knobs, buttons, LEDs, LCD screens, monitors, keys, mice, jacks, sockets. Now two joysticks!
-
- Supporting Member!
- Posts: 203
- Joined: Thu Jan 31, 2008 9:40 am
- Gear: Ion, MKS-30, MKS-50, SQ-1+ 32-voice, TX81Z
- Location: Regina, SK
- Contact:
Re: Restarting the Fizmo Project
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!



- Cybercardinal
- Supporting Member!
- Posts: 482
- Joined: Tue Jun 13, 2006 12:16 pm
- Location: Denmark
Re: Restarting the Fizmo Project
Good work.
Sounds great..will be waiting patiently
Sounds great..will be waiting patiently

- samuraipizzacat29
- Supporting Member!
- Posts: 819
- Joined: Mon Jan 31, 2011 6:40 pm
- Real name: Nate
Re: Restarting the Fizmo Project
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!
+1!
- ninja6485
- Synth Explorer
- Posts: 2770
- Joined: Sun Apr 19, 2009 10:13 pm
- Gear: Virus Ti, Jx-8p, Juno 60, Radias, Maschine, 101,303,606,707,727,808,909, odyssey, mirage, akai s5K/s2K/s1k, drumtraks, E6400ult, M1R, rx5, fizmo,d50
- Band: Subliminal Sea
- Location: Exton/ westchester
- Contact:
Re: Restarting the Fizmo Project
nice!!! great work. funny how stuff hits you after the fact like that
This looks like a psychotropic reaction. No wonder it's so popular...
- worstofthewurst
- Newbie
- Posts: 17
- Joined: Tue Jun 14, 2011 5:20 am
- Gear: Fizmo, FS1r, Pulse+, R8 mkII, Evolver desktop, K5000, Blofeld
- Band: Sprutluder
- Location: Portland, OR
Re: Restarting the Fizmo Project
Radical. I've followed your previous work on this and I am really eager to see what you come up with!
- suitandtieguy
- Newbie
- Posts: 65
- Joined: Sun Apr 09, 2006 8:56 am
- Location: Chillicothe IL USA
- Contact:
Re: Restarting the Fizmo Project
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.)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.
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.
http://stgsoundlabs.com is where i sell things
http://suitandtieguy.com is my personal/music website
http://suitandtieguy.livejournal.com is my LJ, no blogistan for STG yo.
http://suitandtieguy.com is my personal/music website
http://suitandtieguy.livejournal.com is my LJ, no blogistan for STG yo.
- cornutt
- Moderator
- Posts: 2117
- Joined: Sun Dec 02, 2007 6:03 am
- Gear: 6th
- Location: Rocket City USA
- Contact:
Re: Restarting the Fizmo Project
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 parameterssuitandtieguy 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.
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.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.
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.
Switches, knobs, buttons, LEDs, LCD screens, monitors, keys, mice, jacks, sockets. Now two joysticks!
Re: Restarting the Fizmo Project
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?
- cornutt
- Moderator
- Posts: 2117
- Joined: Sun Dec 02, 2007 6:03 am
- Gear: 6th
- Location: Rocket City USA
- Contact:
Re: Restarting the Fizmo Project
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.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?
Switches, knobs, buttons, LEDs, LCD screens, monitors, keys, mice, jacks, sockets. Now two joysticks!
-
- Supporting Member!
- Posts: 203
- Joined: Thu Jan 31, 2008 9:40 am
- Gear: Ion, MKS-30, MKS-50, SQ-1+ 32-voice, TX81Z
- Location: Regina, SK
- Contact:
Re: Restarting the Fizmo Project
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!!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.

Re: Restarting the Fizmo Project
cornutt wrote: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.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?
is it laid out like the fizmo front panel?
- tallowwaters
- Moderator
- Posts: 4998
- Joined: Thu Aug 25, 2005 4:11 am
- Gear: LC-MS/MS
- Location: snake's belly in a wagon rut
Re: Restarting the Fizmo Project
No, it's laid out like a Sounddiver editor.FX23 wrote:cornutt wrote: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.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?
is it laid out like the fizmo front panel?
Brains can be used like a "stress ball," but only once.
Re: Restarting the Fizmo Project
you mean like this?


-
- Newbie
- Posts: 4
- Joined: Thu Jul 01, 2010 3:42 pm
Re: Restarting the Fizmo Project
I'd also be highly interested in such an editor. Good good luck with this project and much respect for your work!