conference logo

Playlist "realraum"

JIT, WASM and scary noises

giulioz

At 39C3 I did a talk about how we reverse engineered a custom DSP from a 90s digital synth, with the the goal of emulating it. To make it performant, and actually run it in real time, we had to resort to JIT compilation of the DSP bytecode. While we built the original emulator in C++, I asked myself how difficult it could be to run it on a web browser as well. Emscripten did wonders translating the original emulator core from C++ to WebAssembly, but the main blocker remained running the JIT engine, since we are technically already inside the JS JIT engine. This talk will go into detail explaining how WebAssembly works, to then build a toy JIT with it for the Brainfuck language. Then, I'll explain how we managed to use this same technology to port a C++ synth emulator, that uses JIT interally, to run at full speed inside a browser.

https://creativecommons.org/licenses/by-sa/4.0/