Converting circuit models to LV2 plugins

Are there any circuit-mapping softwares (like LiveSpice, ngspice, ltspice, CircuitLab, etc) that can export to LV2?

2 Likes

Er, that would be quite a stretch.

Guitarix does contain some tools related to converting circuit models that eventually become LV2 plugins: guitarix / Git / [b1c686] /trunk/tools

This goes waaaay beyond this 101 topic though.

1 Like

Eh, worth asking. Since LiveSpice circuits can be wrapped in a VST plug-in, it didn’t seem like an unreasonable scenario to do the same with LV2.

1 Like

If LiveSpice spits out source-code then you could write an LV2 wrapper?

Next time include such information in your question, because not all of us are aware of such tools and capabilities.

But you’re usually aware of so much more than the rest of us, and do so delight in letting us know it.

2 Likes

(I converted this to a new topic as it’s quite a side-track from the other one)

It seems LiveSpice is C# based. Kind of surprised you can write VST3 plugins using C#, but if you’d want the same then you’ll need something just like GitHub - mikeoliphant/AudioPlugSharp: Easily create VST (VST3) audio plugins in C# .NET except for LV2.

(this does not exist yet, so someone with extensive C# and LV2 knowledge would have to write it)

2 Likes

Well, I’m definitely not qualified to replicate Oliphant’s work for LV2, but I definitely am qualified to build a circuit in a GUI—as I imagine many other members of the forum are. Should someone do that bit of heavy lifting one day, I bet there are plenty of us who would circuit-map our favorite but never-before-digitized amps. Not saying it’s anyone’s responsibility in particular, but definitely a nice thing for a wishlist.

2 Likes

I think @brummer can chime in regarding this.

As @dreamer mentioned, Guitarix has something along these lines and I remember that Hermann pulled off many plugins with such an approach.

2 Likes

As others have pointed out, LiveSpice is written in C#, so an LV2 version is unlikely. It is is also very CPU intensive.

What you can do, is to use LiveSpice (or LTspice, for that matter) to create a circuit, and then use the VST to create a “capture” file suitable for training a neural model. See here, for example.

5 Likes

That would certainly make sense—I use Hermann’s GxAlembic all the time and thought that maybe circuit-mapping other preamps might be a less-heavy way of replicating other preamps than using AIDA or NAM (disclaimer: I’ve yet to train a model) while still being able to adjust whatever potentiometer or switch appears in the schematic. But of course much of Hermann’s work existed before MOD and was ported over, not originally targeted to LV2.

Sorry for delay, I’m a bit busy with may day job right now. Yes, we’ve done something like that and I’ve published a overview to my workflow to use it here:
https://linuxmusicians.com/viewtopic.php?t=19586&hilit=dkbuilder

Just note that this is far from been perfect. But, it allows me to create a hole lot of plugs, many of them you’ll find in the MOD store.

9 Likes

Bloody day jobs eh!? lol x

4 Likes

there are many techniques indeed, some are cited as references, but require you to perform circuit analysis to some extent. The often cited reference is WDF, used in white box modeling, was known way long before ML based stuff arrived. I’ve also studied the tool used in Guitarix, which is simply great. Guitarix works with nodal analysis in a similar way as LiveSpice. But simply solving nodal equations as they are won’t make it run in RT, so you have to cut angles. Guitarix does this by introducing a technique where you will extract a table of points (a LUT) to be used in place of nonlinearities. LiveSpice is more advanced and simplifies the original equations with less CPU intensive math functions. Of course the more you know about the circuit and the more you are aware to where those approximations will be applied, the best sounding emulation you will obtain. Still, the problem of all those approaches is finding a proper way to measure how close you are to the original circuit, not necessarily using ears. And still, figure out how it will respond to real audio data. To me loss functions and Datasets used in ML techniques solved both issues. Also, ML scales from black box to white box modeling. If you are interested and you would like to collaborate just drop me a msg!

2 Likes

If it is helpful, our BigMuff and DS-1 plugins were modelled by @couts, who fully modelled the entire circuits manually, created the code and then spent a bunch of time making it run in real time.

The plugins are OSS, so you can check how he did it.

5 Likes