open source codes for EQ, Synth, Compressor plugins?

Trymonlam

Member
Joined
Jan 2, 2012
Messages
21
Location
HongKong
Dear all,
I have a quick question.
Is there such a thing as a open source database for audio plugins? Do everyone in the business of release freeware plugins write everything from scratch? I have been delegated a task, at work, to research the feasibility to develop a crude DAW for a handheld device, such as the ipad. It would be very helpful if such resources exists.
Any and all suggestions welcome. Thanks in advance.
 

etheory

Well-known member
Joined
Mar 21, 2011
Messages
599
Location
Sydney, Australia
I'm a professional programmer by day, and audio tinkerer by night.  My main job is writing high-performance computer graphics software for the feature film industry, specializing in high-end rendering technology, but I've written a LOT of DSP code as of the last few years, including quite a few "good" VST plug-in implementations that simulate analog devices.

I can direct you to my list of audio-related DSP resources, but you'll need a lot of practice to get it right.
To start at the very basics, there is a great treatment of deriving a 6dB low pass filter from an analog base circuit here: http://en.wikipedia.org/wiki/Low_pass_filter - however it's a rubbish filter with a quite poor high-frequency response and it will alias quite badly depending on the situation of it's use and want you want out of it, but it's fast, simple and sometimes that's more important.

To build REALLY good audio code is incredibly hard, and, outside the scope of a huge number of people.  Without assuming your background ( on this forum it's generally safe to assume you are replying to a crazy genius ) the math is not exactly simple, and you need to really have a good understanding of FFT's, FIR and IIR filters, oversampling/undersampling, resampling filters etc. etc. to even have a vague change of being able to write a DAW of any particular level.  If you don't know what any of that means, get on that Google and search!

For a DAW, the most important thing is the performance of the GUI and the audio engine together and the threading techniques you will use to get accurate synchronization and priority to the sound, which is more important than the GUI.

There are some open source audio plug-in databases out there, but I haven't found one that I REALLY like - you could start with something like synth-edit http://www.synthedit.com ( although I wouldn't, I prefer learning everything from first principles ), or http://www.portaudio.com/, http://clam-project.org/, http://code.google.com/p/dspfilterscpp/, etc. etc. etc.

However it's really not a plug and play exercise.  For instance I got a 35 times speed up by hand writing my core code directly in SSE2 assembler on PC.  I also have a 3-line implementation of an accurate sine-wave generator that's unconditionally stable along with a few band-limited saw and square-wave implementations, but they are REALLY hard to do well.

GOOD digital audio is a science that few, if any, current producers of audio plug-ins have got "right" imo, cause doing it "right" costs a lot in CPU, smears in the time-domain, and, quite simply, doesn't sound as good as analog can given the same input data.

However, I wish you luck with it, cause it'll be ONE HELL of an undertaking.

However long you estimate, multiply that by 10 times at least and quote that.

However if you are determined you'll do it I'm sure - but keep us updated!
 

Trymonlam

Member
Joined
Jan 2, 2012
Messages
21
Location
HongKong
hello etheory,
Thanks for the reply.
First. I am no genius. not even close. I was trained as a programmer and now functions as a recording engineer during my day job. This is for a consulting gig that I was pulled into.
Here's the story.
A large media conglomerate had comissioned a crude DAW made for a particular mobile device for the sake of promoting the said device. It needs to have a simple synth, some simple effects, a drum machine, and a "mixer" interface. This particular conglomerate only allowed a few weeks for development. I was told to see if there's pre-existing open source code that could be adapted into this particular project to form the core functions.
So, that being said, is there anything available in such manner that could be useful to this particular project?
 

Kingston

Well-known member
Joined
Nov 1, 2005
Messages
3,706
Location
Helsinki, Finland
So you just took the consulting gig money even though you know absolutely nothing on the topic. And now you want someone else to do the work for you.

*thumbs up*
 

etheory

Well-known member
Joined
Mar 21, 2011
Messages
599
Location
Sydney, Australia
Trymonlam said:
So, that being said, is there anything available in such manner that could be useful to this particular project?

From what I've seen, without considerable extra work that would almost entirely negate the original intention of "slotting it in", no.

But, I haven't viewed every website out there, so it's quite likely that someone knows of a website with that gold somewhere.

Again, good luck!  And if you need a freelance programmer for some assistance, feel free to PM me for my rate.

cheers,

L
 

etheory

Well-known member
Joined
Mar 21, 2011
Messages
599
Location
Sydney, Australia
Without getting into the actually hard stuff, like the synth.

Start with the mixer.

It's just addition.  If you build it all up from there, I guess it would just make more sense to start with the core audio code, and the simplicity of a digital mixer implementation and go from there.

Once you hit issues like float-point de-normalization etc. that's when you'll start to see whether it's REALLY feasible or not.
 

gyraf

Well-known member
Staff member
Moderator
Joined
Jun 4, 2004
Messages
10,130
Location
Aarhus, Denmark
etheory - thanks for a very good and detailed answer. Nice to know that we have a "local" we can ask about such matters  :)

kingston - I don't quite get if you're joking, sarcasm dosn't come through clearly on a board like this, especially because many of us are not native-english-speaking. However, your comment could be understood as a personal attack, which is unneeded and against forum rules..

Jakob E.
 

Trymonlam

Member
Joined
Jan 2, 2012
Messages
21
Location
HongKong
Kingston said:
So you just took the consulting gig money even though you know absolutely nothing on the topic. And now you want someone else to do the work for you.

*thumbs up*

No. Not at all. First, I did not get paid. Notice "I got pulled in" instead of "I took on". It's a friendly favor from the guys across the hall in the same office building. They knew that I was trained as a coder back in the day, and now I work with music to a certain extent, and they wanted my input.
 

guitarguy12387

Well-known member
Joined
Jul 17, 2008
Messages
302
Location
Boulder, Co
This site has a pretty good code library. It's been a while since i've looked at software DSP (i'm a hardware DSP guy by trade, now). But from what I remember, it had some pretty good algorithm implementations to start from:
http://musicdsp.org/

Granted, they're all floating point. I'm not sure how much juice you'll be able to get out of an ipad for doing signal processing... Some simple IIR filters for EQ or compressor wouldn't be too bad at all. But when you start talking reverbs or synths, you're probably into different territory.

I'll re-iterate what was pointed out before. Doing it is one thing. Doing it well is another. Doing it well and efficiently is why there's companies dedicated to it.

By the by, it's nice to see a digital board starting up. Can't wait to see where this goes! :)
 

etheory

Well-known member
Joined
Mar 21, 2011
Messages
599
Location
Sydney, Australia
guitarguy12387 said:
This site has a pretty good code library: http://musicdsp.org/

I have to second that site, I can't believe I forgot to mention it in my first post - nice one guitarguy12387.

The only thing to be aware of there is the lack of explanation in a lot of cases as to how the algorithm actually works, and how to improve it.  However team this up with some judicious Google searching and it's a recipe for success.

gyraf said:
Nice to know that we have a "local" we can ask about such matters  :)

I am sure there are others in the woodwork too, but yeah, absolutely, fire away in the future with any DSP questions.
 

Matt Ward

Well-known member
Joined
Oct 23, 2005
Messages
72
Location
NYC
If it helps at all, I can recommend someone who can does this sort of work.  Whether they're available or could turn it round in a "few weeks" is a different matter.

Best,

Matt
 

guitarguy12387

Well-known member
Joined
Jul 17, 2008
Messages
302
Location
Boulder, Co
The only thing to be aware of there is the lack of explanation in a lot of cases as to how the algorithm actually works, and how to improve it.  However team this up with some judicious Google searching and it's a recipe for success.

Yeah that's absolutely true. I remember it being not too easy to find good descriptions of audio effect algorithms.

Other places I find the most useful:
www.dafx.de - Lots of good, high-level descriptions of algorithms. I paid good money for a few books by Udo Zoelzer which are amzing.
https://ccrma.stanford.edu/~jos/ - Anything by this guy is very good. There's tons of info on this site. I found this site to be good for beginners as well.
http://www.kvraudio.com/forum/viewforum.php?f=33 - These guys do a lot of plugin work, so I don't spend much time there (I like low level :)). But they know their stuff.

Also, white papers by Jot, Dattorro, and William Gardner
 
Top