Any way to reverse engineer professional audio algorithms or those in e.g. rack units?

In order to study how they're implemented?

Not suggesting to steal ideas, but as education.

  • $\begingroup$ Universal Audio claim doing it... You may have a look at their web page. And Izotope had a similar hardware to software workflow. $\endgroup$ – Fat32 Sep 4 '18 at 12:20
  • $\begingroup$ @Fat32 They could possibly do some kind of convolution study. They might not be interested in knowing the exact block structure of the DSP chain, but more like what effects does it have for the input. Then they could approximate it by ear. $\endgroup$ – mavavilj Sep 4 '18 at 12:21
  • $\begingroup$ No. They claim modeling the entire analog hardware in dsp software form, including all nonlinearities etc. Beginning from available circuit schematics and reverse engineering when it does not exist... Of course perceptual modeling is the key. $\endgroup$ – Fat32 Sep 4 '18 at 12:24
  • $\begingroup$ @Fat32 Analog electronics? But how to do that on some kind of DSP chip e.g. Lexicon? It's likely protected somehow. $\endgroup$ – mavavilj Sep 4 '18 at 12:24
  • $\begingroup$ Universal Audio had its own legacy analog sound processing units for music industry decades ago. So model those using modern technology. This is their claim. You may better consult in their web pages. Their products are still commercial software. $\endgroup$ – Fat32 Sep 4 '18 at 12:27

Not really.

Anything that's a linear and time invariant is of course easy to characterize but most pro audio stuff doesn't fall into this category. It's typically dynamic, time variant, non-linear, signal dependent, etc. These types of algorithms are extremely difficult to quantify if you don't know the internal structure and the parameter space.

Even if you get a full characterization, you may still not learn something about the way it's done. A time-invariant reverb, for example, can be measured through it's impulse response. However, you can't really tell how it's generated (unless it's a convolutional reverb in the first place).

  • $\begingroup$ However an excerpt from Univeral Audio web page implies they do it (not strictly a black-box reverse engineering but modeling indeed). $\endgroup$ – Fat32 Sep 4 '18 at 16:57
  • $\begingroup$ At Universal Audio, we follow a philosophy of using well-practiced scientific discovery to produce the world’s best analog emulation plug-ins. “We believe — and, more importantly, can prove — that our experienced methodologies produce the most accurate hardware emulations possible,” asserts company founder Bill Putnam Jr. “A very important difference between UAD plug-in emulations and competitive offerings is that our engineers employ true physical and circuit modeling. Many of our competitors just rely on signal modeling or limited forms of circuit modeling. $\endgroup$ – Fat32 Sep 4 '18 at 16:58
  • $\begingroup$ But in essence, we 're-build' analog hardware in the digital world. That way, we can better emulate the interesting non-linearities of classic hardware—the hysteresis, feedback loops, distortion, and other circuit elements that give analog units their characteristic, and much cherished, appeal. $\endgroup$ – Fat32 Sep 4 '18 at 16:58
  • 2
    $\begingroup$ @Fat32: modelling a piece of analog hardware is very different from reverse engineering an algorithm. For example Line 6 painstakingly models each analog component of, say, a Vox AC30 and put this in a POD. However, trying to re-create this model, if you only have a POD is pretty much impossible. $\endgroup$ – Hilmar Sep 4 '18 at 20:03
  • $\begingroup$ "It's typically dynamic, time invariant, ..." I guess you meant "time-varying" (?) $\endgroup$ – Matt L. Sep 4 '18 at 20:06

i sorta think differently than the other answers and comments.

if it's a classic analog device (like a Mesa Boogie amplifier), one can trace out the circuit, identify the components, and put in a bunch of high-impedance taps on specific points in the circuit and sample those voltages simultaneously with an 8-channel 192 kHz sampling devices and then work on developing empirical mathematical relationships between the tapped voltages.

if it's a digital device and not terribly new (now some DSPs and CPUs have a sorta "safe boot mode" or something that might defeat this), then with a decent logic-state analyzer, one can determine exactly what instructions are executed from the RESET vector onward. reverse engineering machine code is not easy at all, but i remember doing it with some Digidesign stuff using either MacNosy or ResEdit's disassembler.

otherwise, what you have left to you is a problem of "system identification" of a black box with possibly non-linear elements and with memory inside and that problem is what we call a "copulating female canine".

  • 1
    $\begingroup$ On "tracing the circuit", you can simulate circuits on ngspice and feed them signals and obtain their outputs. I have done this before for wien osc, octavia, fuzz face, simple eqs and while not exactly straightforward, it is doable and the results are not too bad. $\endgroup$ – A_A Sep 5 '18 at 8:53
  • $\begingroup$ @robert bristow-johnson Is it possible to reverse engineer a digital synthesizer (with purely hardware means)? As far as I know no one has ever done such. $\endgroup$ – Dole Jan 15 '19 at 7:57
  • $\begingroup$ it would be very difficult to reverse engineer ASICs that some digital synths (in my experience most notably Kurzwiel) use. but if a digitalm synth used standard off-the-shelf CPU or DSP that did not have some kinda secure-boot mode, it should be possible with a JTAG or whatever debugger they use for development, to watch each instruction the CPU or DSP executes starting from the reset vector. As far as I know, no one has done such, mostly IMO because the market is small and the NRE costs of such reverse engineering would never be recovered. $\endgroup$ – robert bristow-johnson Jan 15 '19 at 20:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.