Amp simulation and circuit modeling

Everything and anything, but nothing about the LinuxSampler project.

Amp simulation and circuit modeling

Postby Consul » Wed Jan 30, 2008 7:13 pm

I decided to break this off of a discussion in the "new engine" forum, as it was getting off-topic there.

To summarize, I've been putting my mind to the problem of how to make a guitar amp simulator. The traditional methods are very difficult, and aren't really producing results that I would call first-rate, though some do, like the Waves GTR and Softube Amp Room, the latter of which I consider the top of the bunch. This all leaves me wondering if a more behavioral approach might be called for.

There are two ways to model a system. One is the black-box approach, where you feed known inputs into a system, get known outputs from that system, and then create a best-fit algorithm of your own to go in-between. The problem with this approach is that it is not parametizable; you can't change an input and get the same result as you would on the original system, and it also does not model interactions between the components of the original system. However, for your one curve-fitted instance, this method is likely to provide really good results.

The other method is via physical or component modeling, where the system components are known, and models of each component are combined in a system where they can interact with each other. This has the advantage of being parameterizable in the same way as the original system, complete with interactions of components. However, these systems are extremely complicated to put together, and don't always guarantee good sounding results across a range of parameters.

I'm wondering if we can't take a hybrid approach, though I don't know exactly how to put it into words.

One of the ways that the "tube" sound is often simulated is with a simple waveshaper using the tanh (hyperbolic tangent) function. You can tweak the sound by applying different bias to the input signal to emphasize one class of harmonics over another. It's not an actual model of a tube, though it does get some of the behavior right: it has a fairly linear range until you push it hard, then the overtones kick in.

Looking at the graphs of various tube datasheets, I can't help but wonder if a more complex waveshaper couldn't be made which matches the curves on the datasheets. It's not true modeling, but combining several of these waveshapers together with other modeled components (EQ and filter networks, DC filtering, etc.) in order to create a complex interacting system that is predictable, like a real guitar amp. Basically, it would be black-box modeling the tube, and component modeling everything else and creating the matrix from that (it remains to be decided how an output transformer would be handled, but I imagine a filter plus a transfer function would work there). As for the cabinet and speakers, I'm wondering if physical waveguide modeling wouldn't be a good way to go there.

It's a lot to think about, and I want to try my hand at a few things. We'll see how it all goes.
Darren Landrum
User avatar
Consul
Moderator
 
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA

Re: Amp simulation and circuit modeling

Postby dahnielson » Wed Jan 30, 2008 9:53 pm

To me, the hybrid approach makes most sense and let you divide and conquer the problem domain.

The best way to start is to make some simple prototypes of the "components" using Faust (which I'm still trying to grok) or something similar that already have the all the necessary opcodes to play around with.
Last edited by dahnielson on Thu Jan 31, 2008 12:58 am, edited 1 time in total.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux
User avatar
dahnielson
Moderator
 
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden

Re: Amp simulation and circuit modeling

Postby dahnielson » Thu Jan 31, 2008 12:56 am

I went through my old bookmarks.html file and added some of them to del.ico.us tagged dsp, will add more resources when I find them.
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux
User avatar
dahnielson
Moderator
 
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden

Re: Amp simulation and circuit modeling

Postby Consul » Sun Feb 17, 2008 6:10 am

It looks like I'm not alone in my thinking:

http://ccrma.stanford.edu/~dtyeh/papers ... ortion.pdf

He has the same idea: simulate the circuits on a perceptual level, using waveshapers for the non-linear components. Designing the waveshaper becomes a trick, though, because what you want to simulate is the distortion introduced by the non-linear response of certain parts of the circuit. He describes a method by which to do that, but I'm still wrapping my head around it. It certainly looks doable, though.
Darren Landrum
User avatar
Consul
Moderator
 
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA

Re: Amp simulation and circuit modeling

Postby Consul » Fri Mar 21, 2008 10:32 pm

Thanks to Anders in another thread, I have another, simpler idea on how to go about speaker and cabinet emulation.

1) Define an IIR filter to mimic the response of the speaker in question. I remember finding the curve and code for a 12" Celestion on-line somewhere, which would fit the bill perfectly.

2) Define two or three comb filters, corresponding to the size of the guitar cabinet being modeled, taking the speed of sound into consideration, etc.

3) Capture the impulse response of a nice piece of birch plywood corresponding to the largest dimension of the cabinet.

4) The incoming audio from the amp sim goes through the IIR defined for the speaker, and then splits to go through the comb filters and convolution. Both signals are then mixed wet/dry based upon desired "microphone" placement.

5) Profit?

I'm still working on where and how to simulate cone break-up in all of this. It would have to be either before or after (most likely after) the filter defining the speaker driver. I'd have to take a look at some time- and frequency domain graphs of what the break-up actually does to think of a way to simulate it.
Darren Landrum
User avatar
Consul
Moderator
 
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA

Re: Amp simulation and circuit modeling

Postby dahnielson » Sat Mar 22, 2008 12:04 am

No, you jumped over the intermediate fifth step, profit is sixth:

5) ...?

6) Profit!
Anders Dahnielson

Ardour2, Qtractor, Linuxsampler, M-AUDIO Delta 1010, Axiom 61, Korg D12, AKAI S2000, E-MU Proteus 2k, Roland R-5, Roland HP 1300e, Zoom RFX-1000, 4GB RAM x86_64 Intel Pentium Dual 1.80GHz Gentoo Linux
User avatar
dahnielson
Moderator
 
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden

Re: Amp simulation and circuit modeling

Postby Consul » Sat Mar 22, 2008 12:40 am

Ah, okay. :D I guess the unknown #5 then is, "figure out how to simulate cone break-up."
Darren Landrum
User avatar
Consul
Moderator
 
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA

Re: Amp simulation and circuit modeling

Postby cricky » Wed Jul 22, 2009 9:25 pm

interesting thanks a lot for this one...


commission de surendettement
- commission de surendettement, vous pouvez demander un dossier de surendettement.
cricky
Newbie
 
Posts: 1
Joined: Wed Jul 22, 2009 9:23 pm


Return to 100% Project Unrelated

Who is online

Users browsing this forum: No registered users and 1 guest

cron