Are there any circuit-mapping softwares (like LiveSpice, ngspice, ltspice, CircuitLab, etc) that can export to LV2?
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.
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.
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.
(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)
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.
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.
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.
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.
Bloody day jobs eh!? lol x
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!
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.
Really interesting topic!
I’ve looked at the code for DS1 and it’s not the same as bigmuff’s, can I ask the author what method he used to model ds1? (Sorry I can’t find the @author button)
@QuanHu, not sure if I understood your issue messaging the author of the plugins.
As Gianfranco said, it was @couts. I’m not sure how active he is nowadays here in the MOD forum, but if you hover over a tag of him (like I just did now), you should get a pop up window with a button that allows you to message him directly. No?
@QuanHu I’ll answer your question about modeling a diode clipper here.
You can either use:
- Ordinary Differential Equations. I’ve sent you this link to David Yeh’s dissertation before I think. This is the most accurate. But it most likely uses more processing power.
- A lookup table. Depending on how much gain you’re circuit has you need a larger table.
- A hyperbolic tangent function or hyperbolic tangent approximation. David Yeh’s dissertation also explains this.
I chose for a hyperbolic tangent approximation and tried to align the shape and frequency response with the lookup table implementation as much as possible. The output gain is also based on the lookup table. I halved that gain because it sounded better. I don’t know exactly how to convert amplitude to voltage and vice versa. Levels depend highly on how much pre-amp gain you apply in the first place.
Thank you! Dave