Skip to content

pendragon-andyh/junox

 
 

Repository files navigation

JunoX Softsynth Emulator

JavaScript library that emulates the classic Roland Juno-60 synthesizer - using the Web Audio's AudioWorkletProcessor and Web MIDI.

Demos

You can change the sliders while you are playing:

  • NexusUI-based UI - I have tested this on Chrome (PC and Android), Firefox and Edge. You may need to play a couple of notes before the JavaScript JIT gets going properly.
  • Useful visualizations: DCO, LFO, Envelope, and Chorus.

Some of the patches have a the "sweet-spot" on the keyboard or are designed to be used with pitch-bend or the VCF sliders. Examples of the original can be found here.

Features

  • Emulation is built using a AudioWorklet. Allows very accurate low-level emulation.
  • Oscillator uses PolyBLEP to minimize aliasing (sawtooth, pulse and sub waveforms).
  • VCF is implemented using a Virtual Analog ladder filter.

Next steps

This project is a work-in-progress:

  • Ultimately I want to publish the AudioWorklet Node+Processor for easy reuse by other developers using an NPM package (maybe as a WebAudio Module or WebAudio Plug-In).
  • Provide integration with a library that implements a sequencer.
  • It should be simple to create additional synths (SH-101, Juno-106, JX-3P) based on the code. This would quickly increate the number and variety of pre-baked patches.
  • Improve performance and documentation.

If anyone has ideas or feedback then I'm always happy to listen.

Background

This project was originally started by Daniele Zannotti. We chose the Juno-60 because it is a very simple synth that (still) manages to sound really good - and I had previously analysed that synth.

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%