Dev branch things - native portaudio bindings and much more

Dev branch now has some awesome updates, none of which will break code:

  1. running Portaudio in Mojo instead of Python. This is more stable and more efficient.

  2. pixi install is waaaay simplified. just one line to run: pixi install. no more system-wide portaudio and hidapi install as pixi installs these.

  3. much more efficient wavetable lookup, which equals many more oscillators. on my machine, when using an Osc[8], I can get 12000 oscillators in one MMMAudio instance. This is up from about 4000. We are now on par with pd…but we can run as many MMMAudio instances as we want. I can run 96000 oscillators on my 8 performance cores.

  4. Drew has made VBAP3D and dbap3d, so we have some killer 3d panners

  5. I just finished a WaveShaper, which can do variable waveshaping distortion using a 3D lookup table. Examples showing multi-waveshaping Chebyshev polynomials and also a Lockhardt WaveFolder (the Serge-style wavefolder) with just one distortion table, but with variable distortion.

I know Ted has some stuff up his sleeve for the next release as well.

3 Likes

Actually, maybe most importantly, Josie fixed the Linux issue with supriya-midi and then I fixed a Linux-side issue with portaudio causing midi issues, so there are no longer any hangups on Linux with midi. At least it works perfectly on my linux box. And as we know, if it works on one linux machine it works on them all…

2 Likes