SA-01 Beta Testing

Hello and thank you for testing my first device. First some basic info about it:

  • ESP32-s3 powered digital 6 voice polysynth
  • Dual core CPU running at 240 mhz
  • 8 step antialiased wavetable/step function interface driven by linear potentiometers (aka sliders)
  • Voice architecture consists of 2 oscillators (osc 1 driven by wavetable, osc 2 configurable to wavetable, sine, square, saw), noise generator, SVF filter, 1 envelope generator, 1 LFO with delay
  • Modulation options currently consist of oscillator LFO, filter LFO, oscillator envelope (todo), filter envelope. Envelope mod has toggleable polarity
  • Monophonic mode with env retrigger or legato
  • Portamento/glide
  • 12 patches (11 factory presets and 1 blank preset). Considering increasing this, only limit is the user interface
  • Device is USB powered. USB port also toggles between USB-MIDI device and "dev mode" - the underlying CPU's serial/JTAG debug/flashing interface. This allows the user to connect via a command line serial terminal (via screen or otherwise) or via a web interface (URL todo) to load patches, dump patches, debug issues and upload new firmware.
  • Hardware MIDI port
  • Two audio outputs, both driven by "output" volume control, one with bigger capacitors for headphones and one for line out.

Known issues with the SA-01 beta device:

  • There's a "clunk" in the audio output when turning on the device. It shouldn't damage headphones but if you're worried about it and you're using headphones, plug them in after the device is powered on.
  • The overall output volume of the synthesizer is on the lower end. Since the output control is digital, you'll get the lowest noise floor if you leave it at 100%. Patches can clip the output (resulting in a red LED lighting up), use the amp knob to address that.
  • v2 devices (the version is on the PCB in the top right corner) have tactile switches that are a little too hard to press.
  • v3 devices have different switches that are easier to press but I got the polarity wrong when I build the PCB. v3 devices must be booted holding button 11 on the keyboard (A#). Booting the device without holding button 11 won't hurt it, but it will boot in "download mode" (i.e. for recovering a bricked device). v2 devices can be booted in download mode by doing the opposite - booting holding button 11.
  • The ADC (which reads all the knob values) on the ESP32 is garbage and I'm planning to add a discrete one better suited to reading a bunch of knobs. The way this shows up in these prototypes is typically via ghost readings - you haven't touched a knob but the display shows a change.
  • I haven't figured out exactly why this happens but if USB power is flaky or your USB cable is flaky it can make the ADC go crazy, with the screen registering constant change events. Try a different USB port, cable, power supply what have you.
  • The sine oscillator currently (as of Jan 8, 2025) has some subtle click artifacts. Haven't figured out why exactly.

And here's the current layout of the interface:

  • By default, buttons 1-12 are a single octave keyboard.
  • Holding a modifier button (shift, global or preset) - at some point I'll make this a single press rather than hold - changes what those buttons do.
  • Hold preset and press a button to load a preset. Hold preset and press and hold a button to save a preset.
  • Shift controls as of Jan 8, 2025:
    • 1: chorus
    • 2: voice mode (poly, mono retrig, mono legato)
    • 3: LFO reset
    • 4: MIDI velocity sensitivity
    • 5: filter env mod polarity
    • 6: osc env mod polarity
  • Global controls as of Jan 8, 2025:
    • 1: MIDI channel
  • A few additional options. Note that v3 users will have to boot holding button 11 AND the following.
    • Boot holding button 1 to revert to factory presets
    • Boot holding button 2 to toggle USB dev mode (will persist after rebooting)

Found a bug? You can file on Github directly at https://github.com/subalpine-circuits/SA-01-beta/issues or just drop it in Discord and I will do it. There are lots of bugs! Be warned!

USB dev mode

Once your device is in dev mode (see above), plug it into your computer and power it on. Open Chrome (must be chrome) and navigate to https://subalpine-circuits.github.io/DeviceManager/. You can dump patches from the devices, load new patches, and update the firmware. Watch the following video:

0:00
/0:46