The Ideas Collection

This forum section was originally created while we were discussing a new, additional engine and sampler format designed from scratch. In the meantime this resulted in our new SFZ2 engine, which is already implemented to a large extent. However this is still the right place for ideas, feature requests, drafts and plans for new engine / format concepts and ideas. We now have 3 sampler engines (Gig, SFZ2, SoundFont 2). Why not having more?
lowkey
User
Posts: 69
Joined: Thu Jan 24, 2008 2:11 am

Re: The Ideas Collection

Post by lowkey » Tue Jan 29, 2008 3:16 am

Hope this is useful for you...

http://www.ludd.luth.se/%7Etorger/brutefir.html#whatis

Its an open source convolution engine. There are loads of impulse response site's like these...

http://freesound.iua.upf.edu/searchText.php

http://www.xs4all.nl/~fokkie/IR.htm

http://www.softpedia.com/progDownload/S ... 50928.html

If the modular system is based around convolution the possibilities would be very flexible (I'm British so I cant help understating things :P )

User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Tue Jan 29, 2008 5:43 am

Something that would be a really important and useful tool, that I don't know whether or not it exists on Linux, is a deconvolver. This is an application that can output sine wave sweeps and white noise of various types out of the sound card, to be input into external gear, and the result recorded back into an input. Thus, the new processed signal can have go through the requisite steps, FFT, subtraction, etc., in order to make a nice impulse response file. A standalone app that can automate most of the steps would be really nice.
Darren Landrum

User avatar
cuse
Developer
Posts: 366
Joined: Wed Jan 23, 2008 10:07 pm
Location: Germany

Re: The Ideas Collection

Post by cuse » Tue Jan 29, 2008 2:43 pm

Consul wrote:The thing is, a completely discrete simulation must be at least possible within the computer, as there are real-time versions of Spice that can accept an input signal and process it. It's might not be efficient, but that would be the interesting problem to crack, right?
It's a difference to have a descrete input and calculate that discrete input with one unified model (what is the english term? "closed form"? The German math term would be "geschlossene Form") and its a whole other thing to calculate the same input with completely independent parts in the model. Keep in mind: a guitar amp circuit is a feedback control system. That means if you see it as descrete model with individual components which calculate all independently one by one in discrete steps, just tiny little differences in your temporary results can cause a completely different total output signal after a very short time.

This fundamental problem is quite good reflected by the so called "Lorenz attractor", which is a very simple, but abstract weather model. The given link is a Java applet which shows you the result in 3D for your given parameters of the Lorenz model. And as you can see,.... just change a parameter just a tiny little bit and the result will be completely different. That's because those tiny little differences are amplified in the feedback of the model, and the problem is, the discretization time of your amp model would have a certain limited size, ... to achieve the real world results, the discretization time would need to be endless though.

User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Tue Jan 29, 2008 4:48 pm

Then how does an application like Spice prevent that same issue from happening with its own models?

Looks like i have the enthusiasm, but not the skill. Differential equation sets are beyond not only my abilities, but the abilities of all the people at the college I go to. This might have to wait until I transfer to a university. (Here in the US, we can go to cheaper 2-year colleges and then transfer to finish at more expensive universities.) Or is there another way I can approach the problem?

Thank you for your help.
Darren Landrum

sbenno
Developer
Posts: 80
Joined: Wed Jan 23, 2008 8:30 pm

Re: The Ideas Collection

Post by sbenno » Tue Jan 29, 2008 5:11 pm

Another way to acquire knowledge in math is buying a few books.
I'm sure a few months of studying diligently can bring you farther than an university course.
I'm convinced that there are nowadays very good self-study math books.
The most important factor is as always motivation. I've seen ultra-motivated not so talented
people achieving unimaginable goals while not motivated geniuses going nowhere.
So keep enthusiasm and motivation high and you will be able to achieve goals you never imagined
before.

Contributing to open source project is rewarding, has a big learn factor and you make lots of new friends.
And due to your newly acquired knowledge and network of people it can some times even open up you
new business opportunities.

We are happy to have people like you on our side because enthusiasm is contagious so keep learning
and continue to "infect" new people with your positive attitude :)

cheers,
Benno

User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Wed Jan 30, 2008 5:46 am

Oh, believe me, my attitude is anything but positive. I'm in the middle of a huge familial financial crisis, which leaves me unable to buy the software I want, which is what I'd rather do, to be honest. I'm diving head-first into making my own software because I feel I have no choice in the matter now. If I want it, I'll have to create it myself. All I've ever wanted to do is just make music.

That being said, I don't see why I can't do something interesting, and maybe try to improve upon what came before. In the end though, I seriously doubt I'll be teaching myself how to create and code solutions for systems of differential equations. The only way I might manage it is if I can use something like SciLab to do the grunt-work for me, although how that might work I have no idea. It's probably all moot at this point anyway.

I think from here, I'm just going to play around with bi-directional waveguides. I have some ideas on how one might go about making a sort-of low-pass resonant filter in the physical modeling realm. I doubt I'll ever understand what I'm doing, but what the hell, right? Physical modeling might also be a good way to do speaker and cabinet modeling.

My math teacher explained today what cuse was talking about, with systems being more stable than discrete functions. It still doesn't answer the question about how Spice can create arbitrary circuit models with discrete functions, though. Yes, I know Spice is not meant to be real-time, but that has little to do with the stability of the system, right?
Darren Landrum

User avatar
cuse
Developer
Posts: 366
Joined: Wed Jan 23, 2008 10:07 pm
Location: Germany

Re: The Ideas Collection

Post by cuse » Wed Jan 30, 2008 11:34 am

Look, don't get discouraged by the things I've said. I haven't started anything about modelling a guitar amp yet. And even if that was the case, I still may be utterly wrong and you might find an extremely simple model that achieves stunning good results of your amp. So try what you think could do it, the worst thing that could happen is that you *just* learned something about a new field. All the things you learn in this field of engineering will open you a lot of other doors in future, because they can be transferred to any field of engineering, so it's definitely not a waste of time.

About your questions: my concerns are not about processing signals in a discrete way. In DSP you usually do everything with discrete functions, because it's far more runtime efficient. To achieve accurate results compared to your real guitar amp you most probably have to model it (even though as discrete function) as a whole though.

The way spice and I guess most other analog circuit simulators work, is they create a Matrix describing the circuit as a whole and then resolve that Matrix in a standard way (they transform the matrix) to get the parameters of an approximation of the actual differential equation system that describes the circuit.

There's even another problem: most solutions to find an approximation of a given, arbitrary differential equation system expect the system to behave as a so called "LTI" (Linear Time-invariant System), which implies two things:
  • Linearity of the system: that means, if we we apply it to the guitar amp scenario, if you knew the output of the amp/model for a certain input signal, then you also knew the solution for the same input signal just with another arbitrary amplitude / factor. So let's assume you can perfectly play the same guitar riff twice, one time with a quite low setting of your guitar volume knob, and the 2nd time you open your volume knob an the guitar completely, a LSI model would then assume both output signals of your amp to be identical, just that the 2nd one is louder than the 1st one, but with the absolute identical waveform. And it's obvious that this is not the case with a real guitar amp and the reason why it's so much fun to play with, because when you play it softly, it will sound clean, but when you play it full throttle, then you get warm distortion of your analogue tubes which enriches the signal with new frequencies.
  • Time invariance of the system: that means it expects when you have the resulting output signal for a certain input signal, and you play it again at an arbitrary other time, it would always sound 100% the same as the last time. This is probably not a big problem for the field of simulating a guitar amp though, because you're usually only interested in simulating the state where your amp is warm.
I've tried a lot of virtual modelling guitar "amps" / effect boxes (except the ones from Line6, which are sometimes said to be one of the best) and all sounded like they had LTI system models. You can compare it to the old Wavetable boards and ROMplers of the early 90s: all programs on those boxes sounded the same, no matter how you hit the key, there's no dynamic behavior whatsoever. So it's far from my real Boogie amp, which sounds gentle bell-like when you softly stroke the strings, and sounds like a complete screamer when strumming the strings with full power and of course there's a lot in between those extremes.

Would be interesting if Spice & Co. work with LTI models as well, if you found out, please let me know! :)

And yes, the RT-unsafeness of Spice is irrelevant.

User avatar
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Wed Jan 30, 2008 6:36 pm

You know, I don't know why I'm so hot for an amp sim, as I'm really not much of a guitarist. It just sounds like an interesting challenge. Ultimately, I wouldn't mind trying my hand at modeling a Hammond Novachord. :D

Everything you've said in your post makes me wonder if we shouldn't be thinking about modeling behavior, rather than theoretical physical components. I also can't help but wonder if physical modeling techniques can be applied to circuits. Regardless, this is all very much off-topic now. I'll start a new thread in the off-topic area about all of this.
Darren Landrum

User avatar
dahnielson
Moderator
Posts: 632
Joined: Wed Jan 23, 2008 11:25 pm
Location: Linköping / Tranås, Sweden
Contact:

Re: The Ideas Collection

Post by dahnielson » Wed Jan 30, 2008 6:49 pm

Consul wrote:Everything you've said in your post makes me wonder if we shouldn't be thinking about modeling behavior, rather than theoretical physical components. I also can't help but wonder if physical modeling techniques can be applied to circuits. Regardless, this is all very much off-topic now. I'll start a new thread in the off-topic area about all of this.
Can't the moderator move these posts about amp. modeling over into its own topic? It's quite interesting and would be easier t follow the discussion whole from the beginning.
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
Consul
Moderator
Posts: 189
Joined: Wed Jan 23, 2008 11:19 pm
Location: Port Huron, Michigan, USA
Contact:

Re: The Ideas Collection

Post by Consul » Wed Jan 30, 2008 7:22 pm

Well, I'm a moderator, and I'm able to split topics, but I can't figure out the interface, and I'm afraid of messing something up. I created a new thread here to continue this discussion:

viewtopic.php?f=5&t=20
Darren Landrum

Post Reply