Sequential Prophet X

In september of 2023 picked up a second-hand Sequential Prophet X synthesizer. It's very good!

I got it because I have a Pro 2 which I very much like. I wish it had stereo filters with pannable oscillators and allowed running two layers at a time, and the Prophet X does both. The polyphony is nice, too. It allows you to load and manipulate samples instead of the fixed wavetable oscillators on the Pro 2, but is otherwise a bit less advanced as far as I can tell, at least the filter only does lowpass and there's only one of them as opposed to the Pro 2's two filters that can be run in parallel (which is a great way to make a synth sound less like a synth.)

Inside is an ASRock J3455-ITX PC motherboard connected via PCIe to a custom board containing a Xilinx Artix-7 FPGA and the 16 analogue filters/VCAs, as well as a PIC32MZ2048100EFG microcontroller which looks like it runs the user interface. Also on the mainboard were some AKM chips. Based on the synth's architecture I'm expecting 2 stereo codecs (one input to the effects for each layer, and one output).

As far as the software goes, I've been able to ascertain that it's running QNX off the SSD. There's a main binary does all the sound generation and control signals, and appears to exchange messages with the PIC via the FPGA. There's no UI stuff that originates on the PC side, all the graphics and strings are on the PIC side.

The SSD has two partitions. A second, large partition, which contains nothing but the content and the main binary plus a small startup script that backs up the main binary to /tmp, runs it, and checks if it's running 5 seconds after and if it's not restores the backup and reboots. The first, smaller, partition appears to contain the basic QNX system image ("IFS").

Reverse engineering/extending the firmware

I've looked at the QNX binary in Ghidra, and it appears quite understandable. The binary is unstripped, so you have function names and Ghidra does a good job of turning it into readable C. I haven't actually reverse-engineered the protocol that starts up and talks to the analogue side, but it looks feasible to the dedicated individual.

There's a minor and a major problem with doing pretty much any community update of the firmware:

Minor: the firmware is based on QNX, and to recompile the decompiled code, you need the QNX toolchain. I was able to get a test license easily, but this only works for 30 days. QNX aren't interested in hobbyist/community developers at all, expecting a paid license per developer seat. Now, it's just an ELF binary, probably something could be made to work, but it's an issue I don't fully know how to tackle. I'm also not sure how the recent (2024) opening of QNX to hobbyist developers might help - seeing as the PX is based on an older release.

Major: As mentioned above, the PC side - where you've got an unstripped binary ready for reverse engineering, as well as all the amenities of a nice multitasking operating system on a well-known platform with USB, networking and graphics - knows bugger all about the UI! That's all in the PIC32 firmware in flash. So if you want to change anything about the menus or what's displayed on the screen, you get to first reverse engineer all of that embedded code and do your updates there and deploy them. It's a shame. If the front panel buttons and displays had been dumb devices hanging off the serial port or something, this synth would have been a hacker's dream, but alas, it is entirely tied to what Sequential have made it do.

Is the Prophet X just a cheap PC?

Obvious not. Soundwise, it's a hybrid architecture, with analogue VCAs and filters. It has a very, very nice keybed and a large number of encoders, potentiomenters and buttons. None of that is cheap, and this all fully lives up to Sequential's reputation as a high-end manufacturer. This thing is lovely to hear and to touch. And it's important for that you understand that the interface and physical side of any synth is the expensive part. The digital side, the actual hardware that generates the sound, is not. This motherboard is cheap, sure, but the rest of this machine is extremely not cheap, and this why the price was what it was.

It's true that the digital part is based on an off-the-shelf motherboard, but look. A PC-class MB with fast RAM and PCIe is complicated. Incredibly complicated. It's a completely different league than what Sequential normally do. A digital board of its class is just not something they would have done in-house, they would have worked with an consultancy, and it would have been expensive. These are 10, 12 layer boards. You don't do this unless you have to, and there's no need to do it and no reason to do it here. Because at the end of that (year-long) process, you have pretty much the same thing as the ASRock board, just worse. Less tested, most likely less reliable. The PS/2 ports do look strange inside the box, but this is a good, sensible design. The faults people complain about have nothing to do with it being an ASRock board inside instead of something bespoke. It's just people who don't know anything being dumb on the internet. If you need this level of software performance that you're not working with ARM Cortex-Ms that max out at tens of megabytes of memory, you buy something off-the-shelf. It's the only reasonable thing to do.

Version history