SynthMaker

The most inefficient FIR EQ. Gota be a better way.

Archive · 2006 3 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

cAPSLOCK ·

Here is a little FIR EQ I cooked up. Thanks to all on the forum (esp sambean) for ideas here.

I would like to see it do work differently, but this is the first thing I built in SM and I gotta say, it is an obvious amateur kludge. 😉

The thing is, this is plain brute force convolution. And that is not all that is wrong with it. It also stores all the taps in little float data boxes. Then it bulldozers together the audio via X->shift->add->X->shift->add->...

Certainly there would be a way to make the convolution part better. I would like to be able to (efficiently) use IRs of up to 512 samples at 44.1. I could see using respectively more at different sample rates.

I understand that SM doesn't yet have FFT/IFFT and that would be one way to do it. But maybe there is a better approach with the code module for example. Of course there could be difficulty there too. I think I could pull something off in C(++), and know of the code in the DSP-archives by C Budde. But I am not yet up to snuff on the SM code module for things other than really simple ones. I am not sure about looping, conditional statements etc.

Secondly, there has to be a better way to store these taps. Is it possible to use an array?

Thirdly, a great boon for me with this would be to be able to load the IRs as wave files and have them interpolated into an array.

Does anyone have any suggestions for these ideas?

cAPS

http://noisevault.com/synthmaker/64pointEQ-FIR.osm

sambean ·

You could use a float arrays with lots of 'float get at' modules indexed 0,1,2,3... etc etc.. instead of float modules.

It may be posible then to somehow convert from a text file to a float array.. This might be possible by connecting directly text->float array or you may have to use the parser.. This will save you the labour of having to fill in every float module..

As for the actual dsp this is why I was enquiring about thememin if this was working it could make life a lot easier, without having to have so many connections.. But I wouldn't get my hopes up before version 1.. There may be a simpler method with the code module, but there still will be a lot of wires..

Sam

cAPSLOCK ·

Thanks Sam. I think the idea of text -> array will be what I work on next. That would be much better than the way I am doing it. I will post if I can make it work!

...e...edit...

OK I got text to array working. Now I can try getat with maybe a counter loop. This may be no more efficient but it will certainly be cleaner.

cAPS

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.