I built a browser-based virtual pipe organ that loads SF2 soundfonts and renders a realistic organ console interface.
Features:
- Loads SoundFont2 organ samples directly in the browser (using smplr library)
- MIDI keyboard support (multiple devices can control different manuals)
- Realistic draw-stop knobs with pull-out animation
- Expression pedals with 3D tilt effect for volume control
- Convolution reverb for cathedral acoustics
- Computer keyboard fallback (two-manual mapping)
Tech stack: TypeScript, Vite, Web Audio API, WebMIDI
The UI mimics a real organ console with stop jambs on either side and stacked manuals in the center. Stops are distributed in a zigzag pattern like traditional pipe organs.
Currently ships with a smaller soundfont (~22MB) while I figure out efficient ways to stream larger organ samples. The challenge is that quality pipe organ samples can be 1-2GB+.
Live demo: [URL]
Source: [GitHub URL]
Would love feedback on the audio latency and UI. Planning to add: pedalboard, couplers, and possibly IndexedDB caching for larger soundfonts.
Do you want to collaborate in the Digital Musical Instrument space, designing open source real life products from the bottom up?
We are building the first end-to-end Pipe Organ Emulator project, from the cabinet furniture and the Arduino specialized controlers, the 3D printed interfaces, to the customized Linux-based embedded sound engine.
The home page of the project is https://openpipes.org Contact info in the mentioned page.
My first prototypes were done with Aeolus, which is a simple but limited additive synth with up to 64 components.
This distro utilizes GrandOrgue, a very specialized Pipe Organ emulator and sampler, running headless on a framebuffer and loading a number of postprocessing plugins if necessary. It Is capable of not only sounding hyper realistic but also running very complex register combinations via midi, with 24/96 multi-attack multi-release samples. Raspi4 Is the first generation able to run the hundreds of simultaneous streams needed for this task.
I've had correspondence with Fons, including a little drama about somebody improving upon his code, which he disagreed, and caused the deletion of the improved repo. This incident put me further away from working with its codebase, in fear of further retaliation from His part. If you have further interest in modelling, Modartt also has a modelled Pipe Organ now apart from Pianoteq. In the future I plan to work on GAN-based Pipe modelling, to obtain a whole new experimentation domain regarding Pipe voicing.
For Pipe Organ professionals, sounding similar Is just one aspect of the instrument. There are tonnes of other nuances, that require as much thought as the sound emulation itself. In that vein Is that I call Aeolus "simple". The sound is pretty accurate, but most pro players I know pass from it for sample based-complex operation emulated apps like GO or Hauptwerk.
I recently visited the pipe organ museum in Valley (Bavaria, Germany), where they did something similar: connect an organ console (which had been replaced with a newer one) to a PC to recreate the original sound of the organ (http://www.lampl-orgelzentrum.com/St.Lorenz_Zentralspieltisc...) - however this was done using samples. While reading that, I wondered if it would be possible to get the same (or maybe an even better) result by emulating the pipes...