Page 1 of 1

DSP Insert?

PostPosted: 02 Feb 2014, 21:20
by DonGateley
Is there a not too difficult way to add a DSP insert into the audio stream?

Re: DSP Insert?

PostPosted: 04 Feb 2014, 16:00
by Orion
Hi,
this is an interesting question! I think it is a task of medium difficulty.
For now is out of our "wish-list" because we are overwhelmed with many other task, but if you want to contribute, we can support your activity.
What kind of "DSP" you have in mind? Equalization?

Re: DSP Insert?

PostPosted: 04 Feb 2014, 20:22
by DonGateley
Yes, but not your grandfather's equalization. Specifically I want a linear transform plugin. It accepts two user defined impulse responses, A and V, and convolves the audio stream with the ratio, V/A, of the two. By V/A I mean the IR of V convolved with the inverse IR of A where the "inverse" of A is A' such that A convolved with A' is a one sample unity valued impulse (or close approximation thereof.) The plug does the inversion.

I'm developing this as a VST plugin for Windows machines and just about have it working. A use case would be to make speaker (or 'phone) A sound like speaker V by measuring the impulse response of each. It allows specification of a third IR for ambiance like recorded rooms and halls. Lots of these exist. As coded, an instance of the plug will handle 3 seconds of ambiance which is more than enough. I might add intrinsic stereo to binaural as well.

For a Rune plugin architecture, obviously I suggest the VST API such that Rune would become a host for a VST plugin. Only one is necessary because it can in turn host plugin racks or roll your own graphical construction plugs like VSTHost. I'm not sure if any Linux VST plugs have been compiled to the Arm instruction set yet but that should be trivial. To open that world up, a host is needed and it looks to me like Rune would be perfect. KVR Audio has a site which shows the vast array of VST plugin possibilities:

http://www.kvraudio.com/q.php?search=1&q=&f1[]=vst

And the currently existing set for Linux:

http://www.kvraudio.com/q.php?search=1&q=&os[]=lin32&f1[]=vst

For the latter on the Pi, recompilation to the ARM instruction set is required but that is trivial and there exist Windows->Linux VST wrappers to handle the GUI mapping. A web search on "Raspberry Pi VST" shows that there is already interest in this.

You may not currently have the resources to add VST hosting capability to Rune but I'll bet that if you put out a call you'd get a volunteer. I would certainly consider it if I had the internals skills needed. For the right person this would truly be a piece of cake with a really skinny impact on Rune overall. Basic, un-parameterized stream hooks in Rune to get such a coder going completely independently could probably be added in minutes.

Well, that's my pitch and I appreciate any consideration you might give it. The flexibility the enhancement would give is difficult to overestimate.