I can’t find a synth I like, so I’m building my own

algocompsynth synthesizers MIDI Polyphonic Expression Open Sound Control Eurorack softsynths Organelle M Modal Electronics Skulpt NVIDIA Jetson JetPack cuSignal CSound JupyterLab PyTorch TensorFlow Ubuntu Studio Miniforge Euterpea TidalCycles

There are a lot of synthesizers you can buy. But the really good ones are expensive and you’re locked in to a feature set. So I’m building my own. And you can look over my shoulder right here on this blog.


Author

Affiliation

M. Edward (Ed) Borasky

 

Published

March 17, 2021

Citation

Borasky, 2021


Update: March 17, 2021

We have a home on GitHub - https://github.com/AlgoCompSynth! Code will be showing up quite soon. Major chunks already exist in my edgyR-containers project.

Update: March 16, 2021

  1. I messed up on the bill of materials for the synth. You will need a microSD card for the operating system and data. So instead of the $58.26US USB drive, to stay within the $500US budget we can spend $74.01US. For that price you can get a SanDisk 400GB Extreme. It won’t be as fast as the off-board USB drive, but digital sound synthesis is limited by processor capacity, not disk speed. And you can always add an external USB SSD.

  2. The synth needs a name. So I’m going to call it the AlgoCompSynth One.

What’s wrong with all the synths out there?

So I’m building a synthesizer - the criteria, and why what’s on the market is insufficient:

  1. Hardware budget: $500US or less. That pretty much rules out most commercially-available software synthesizers. The binaries they ship almost all require either Windows or Macintosh.

    Some will run on the new Apple Silicon and some will run on Linux, but most of them are constrained to Intel / AMD 64-bit hardware. So their compute / RAM requirements aren’t going to be satisfied by a $500 unit.

    That also rules out most desktop analog and digital synths. These are great for beginners, but what you can get for $500 isn’t much. And you can’t expand them.

    Modular Eurorack synthesizers do meet the control paradigm and user interface criteria below. Again, you can’t get much for $500US.

  2. A better control paradigm than MIDI: MIDI is a limiting control paradigm for the kind of music I want to make. MIDI polyphonic expression (MPE) is a vast improvement, but few hardware synths support it.

    I only know of one under $500 - the Modal Electronics Skulpt. It’s an excellent beginner synth but not expandable. I need at least MPE and prefer Open Sound Control.

  3. Flexible user interfaces: commercial synths have what they have - keyboards, buttons, knobs, tiny LCD screens, pads, ribbon controllers, etc. If you need something else you need to buy more hardware. And cables. Too many cables. I hate cables.

My hardware choice

I’ve ruled out most commercial synthesizers. But there’s one that comes very close to meeting my interface flexibility and control paradigm constraints - the Critter and Guitari Organelle M. And it’s only slightly over budget at $595US.

I first discovered the Organelle on a YouTube channel called “Bad Snacks”: https://www.youtube.com/watch?v=jRHLjSOPVko. The Organelle M is actually a complete Linux computer with some impressive software, including Pure Data. You can put it on your local area network and use it as a server.

But I don’t need the buttons, knobs, speaker and LCD screen on it. I can put together a much more powerful hardware platform with much more flexible music software for less than the Organelle M.

  1. NVIDIA Jetson Xavier NX Development Kit ($399US): this platform has

    • six 64-bit ARM cores running at 1400 MHz,
    • 8 GB of RAM,
    • an NVIDIA Volta GPU with 384 CUDA cores and 48 tensor cores,
    • hardware assists for video processing and AI applications, and
    • plenty of USB ports and embedded / Internet of Things connectivity!
  2. A Yahboom Aluminum Alloy Case ($26.99US): this provides a protective case with cooling fan and antennas for the Jetson WiFi.

  3. A PNY Elite 480GB USB 3.0 Portable Solid State Drive ($58.26US): this is where our software will live.

What about software?

The JetPack SDK that comes with the development kit already includes:

  1. Ubuntu 18.04 LTS “Bionic Beaver”: this is the whole thing - everything in that distribution that’s been ported to the arm64 architecture. Desktops, compilers, applications, games - the works!

  2. NVIDIA GPU development tools: drivers, compilers, libraries, profilers and debuggers to use the GPU. Some are installed on the base image and the rest can be installed from the repositories.

    NVIDIA GPU libraries for OpenGL and Vulkan are available, as is NVIDIA accelerated gstreamer.

    There are also some advanced video processing and artificial intelligence packages; the main industrial target of the Jetson hardware is self-driving vehicles and robot vision applications. Nearly all of this software is accessible from both C/C++ and Python.

Ubuntu Studio

But wait! There’s more! Nearly all of the packages in Ubuntu Studio 18.04 are available. There are digital audio workstations, software synthesizers, effects plugins, drum machines, guitar tutors, audio recording and analysis software, MIDI sequencers, live coding environments and music notation software.

Note that these pacakges run only on the multi-core CPU; they are not GPU-optimized. And there’s some configuration you need to do for Linux audio, but it’s not the maddening catastrophe it used to be.

Between Ubuntu itself and Ubuntu Studio, the control paradigm and interface flexibility criteria are well supported at the cost of a software install. The one thing you won’t be able to do is run binary packages compiled for the Intel / AMD 64-bit architecture, like most commercial VST plugins.

Additional software I’m building

All my added software will be open source on GitHub. I’ll be creating:

  1. Setup scripts for the Linux audio and Miniforge. You’ll need to run these once after you get your hardware set up.

  2. Installers for the JupyterLab Python data science environment and the NVIDIA cuSignal - RAPIDS Signal Processing Library. cuSignal takes quite a while to build, so I’m planning to distribute binary packages if the licensing permits.

  3. Installers for other GPU-capable audio software. The main one I know of is CSound. Again, license permitting, I’ll be distributing these as binary packages.

  4. The PyTorch deep learning package and its audio and vision libraries. If I can get it working, I’ll also have TensorFlow and Magenta.

  5. Haskell music software: this includes Euterpea, the Haskell School of Music, and the TidalCycles live coding environment.

Footnotes

    Reuse

    Text and figures are licensed under Creative Commons Attribution CC BY-SA 4.0. The figures that have been reused from other sources don't fall under this license and can be recognized by a note in their caption: "Figure from ...".

    Citation

    For attribution, please cite this work as

    Borasky (2021, March 17). AlgoCompSynth by znmeb: I can't find a synth I like, so I'm building my own. Retrieved from https://www.algocompsynth.com/posts/2021-03-13-i-cant-find-a-synth-i-like-so-im-building-my-own/

    BibTeX citation

    @misc{borasky2021i,
      author = {Borasky, M. Edward (Ed)},
      title = {AlgoCompSynth by znmeb: I can't find a synth I like, so I'm building my own},
      url = {https://www.algocompsynth.com/posts/2021-03-13-i-cant-find-a-synth-i-like-so-im-building-my-own/},
      year = {2021}
    }