Juce noob-help me learn


#1

hey,I want to program a VST equalizer but I have zero programing skills.I understand mathematics,I understand how digital signal works,but I dont understand anything about programing,can you please tell me what to do? it all looks extremly hard to me and I am kind of stuck I dont know what to do,


#2

It looks extremely hard because it is. JUCE/audio programming is not a very nice way to learn to program from the ground up. You need to learn the basics of programming and C++ elsewhere first, then come back to this. There’s just no way to understand what JUCE is doing or how anything works with no grounding in programming at all


#3

how long do you think it would take me if I study it 2 hours a day? I am not sure if I should self learn from internet or its better to just hire someone,do you think I could do it in 2 weeks?


#4

You mean learn the needed coding in 2 weeks or hire someone to do it in 2 weeks? Learning the needed stuff in that time isn’t going to be realistic at all. (The needed time is measured in years, not weeks.) Hiring someone to do it in 2 weeks, maybe. It would depend on what exactly you want to get done.

And maybe it would be a waste of money anyway to hire someone to do it. How would your VST equalizer plugin be different from the plugins that already exist? Do you need it for your own private use or do you intend to do a product for other people to use?


#5

There’s a reason programming is a highly paid profession…it’s not easy. 2 hours a day for 2 weeks is enough time to maybe learn enough to cobble together a command line Space Invaders clone or something. It’s not even remotely close to the ballpark required to go from nothing to writing an equalizer.

Programming in general is complex, difficult, and rather frustrating most of the time. Programming in a low level language like C++ is a hundred times moreso. Writing threaded C++ that has to run in realtime even harder. If you’re just wanting to dabble and make your own EQ for fun, there are options for that (Max, Reaktor). C++/JUCE/VST Programming are going to require a substantial time and effort investment for someone who’s never programmed at all.


#6

I invented groundbreaking new eq filter technique that eliminates ringing and ripple from linear phase filter,I want to get it patented but I want to first program it so I can precisely specify my patent


#7

Oh in that case Matlab. For real.

You don’t need a plugin or anything else to demonstrate algorithm techniques, you just need to implement your technique in some manner. Take a look at some academic publications in the DSP field…probably half of them use Matlab or Scipy. You could easily go from where you are now to a Matlab filter in a couple weeks


#8

thank you very much SonicZen ! I have matlab but I dont know how to use that command programer thingy where you type stuff like its in Juce/c++


#9

I tend to agree with the comments above: if you have no programming experience, this is going to prove hard for you, especially in this real-time audio domain.

Did you have a look at this: http://audioplugingenerator.com/

Or alternatively, you could take the following approach:

  1. Since you invented (and I assume verified) your new algorithm, you should have some kind of running code or set of formulas in some kind of computer-understandable language. You only turn this core algorithm into C or C++: nothing fancy, just bare bones math/dsp programming, suited to be used in a streaming way (N audio samples in, N audio samples out), and with no memory allocations in your core process(float* inSamples, float* outSamples) function. This can be totally apart from Juce, and if you have Matlab (and the Matlab compiler), you could create a MEX module and test it inside Matlab.
  2. Then hire someone here on the “Jobs” subforum to put your core code into a VST plugin using Juce, where you can have some parameters to quickly tweak and test, and possibly also see some values or curves. If you don’t want to share your code, you’ll have to learn to build a C or C++ static library, which you can then hand over to the VST developer. But I assume you’ll have confidentiality agreements in place anyway, as you’ll submit a patent for your new tech, so you might as well supply the full source code then.

My 2 cents…


#10

Cool! How did you do that?

A dynamic window size, which is shorter (less steep) near transient events?

Or running the same filter, with different windows sizes (smaller less steep, bigger more steep) and then crossfade between them, near transients?

Or maybe running the some kind of transient detector, which compares the processed signal with the original and eliminates ringing? Or maybe a complete different approach?


#11

yes it is! I am so excited! if my calculations based on my tests I done are correct,this is going to be truly groundbreaking,people pay big money for vst mastering eq yet they all contain some compromise between ringing and ripple,good filter also have use in telecomunication,medical even military

it will be first time in human history that the theoretical holy grail perfect filter will be possible,that is no phase shift,flat group delay,no ripple in either stopband or passband,no pre or post ringing and no distortion,instability or other funny things with extremly steep curves possible like lets say 384db a octave

I dont want to talk about it too much becose I fear someone will patent it before me,stealing my invention,but I will say this.Even though I call it “filter”,it isnt really a simple conventional filter,its rather highly complex DSP signal process,big downside is it will most probably be incredibely “hard” on cpu/fpga,I mean a single steep cut on 96/24 5minute long mastering pcm track is going to probably take several minutes if not hours to process on latest 4 core intel cpu


#12

What compiler should I get? there so many and I have no idea which one to get,what is most popular?


#13

Depends on your OS. You use MSVC (via Visual Studio) on Windows, Clang/LLVM (via Xcode) on macOS, and GCC with Code::Blocks or your choice of IDE on Linux.


#14

What does pre/post ringing mean ?

I vote for MATLAB or SciLab / Octave for starting coding, and maybe some tutorials on Code Academy


#15

ringing is distortion that grows on signal after you equalize it.

It looks like sinewave,its called Gibbs phenomenon


#16

There is one thing i thought about.
If you have a one sample pulse signal as source, and then filter it with a super steep low pass filter with your new algorithm, how would the result waveform look alike? When there is less pre/post ringing, wouldn’t the result automatically be less steep filtered?


#17

And what do you mean by distortion ?


#18

it would look same like before,only lower amplitude value

yes,less ringing means less steep filter in all conventional filters,thats the whole point of my super duper quantum leap eargasmotron filtering process that gets rid of that stupid annoying ringing so you dont have to compromise the filter steepness to prevent that sonic cancer from getting too big


#19

hey guys,can I download somewhere simple FIR linear phase EQ/filter JUCE code? I am really getting into it and at this point I would like to see how the linear phase eq code looks like in juce so I can learn about it and understand it

if someone made youtube tutorial how to make it that would be much appreciated <3


#20

It looks the same as non-JUCE FIR code. JUCE doesn’t really have anything to do with that. I think some DSP stuff is planned for soonish but right now you just implement normal FIR that gets called from the process block. There’s an IIR class now you can use as an example for JUCE specific if you want I guess.

The Audio Toolkit has FIR implementation, Vinnie’s DSPFilters might? IH has a bunch of classic implementations http://www.iowahills.com/