IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Yet Another Convolver
j_b
post Aug 6 2010, 07:24
Post #1





Group: Members
Posts: 33
Joined: 19-September 07
From: Santo, TX
Member No.: 47182



foo_dsp_yac v1.0

This one chooses the impulse filter based on the current track’s tags and the current sample rate. The tag name is "filter" and the tag value is the name of the impulse file. The file path is ".\filter\n\", where "n" is the sample rate divided by 1000. For example, if the tag "filter" == "PopEQ.wav" and the sample rate is 44100, foo_dsp_yac will use ".\filter\44\PopEQ.wav". The impulse file may be mono or stereo in any format Foobar can decode but its sample rate must equal the current sample rate and it can contain no more than 16K frames. Also, the audio track being convolved must be stereo.

The filter size limitations are necessary because foo_dsp_yac does convolution the old fashioned way: multiply and accumulate. foo_dsp_yac is intended for simple equalization, which, unlike reverb and other special effects, doesn’t require large impulse response files. Even so, a slow CPU may not be able to keep up at high sample rates regardless of the filter size. If the process affinity mask indicates more than one logical processor, the left and right channels will be convolved in separate threads.

Go to the top of the page
+Quote Post
j_b
post Oct 13 2010, 15:29
Post #2





Group: Members
Posts: 33
Joined: 19-September 07
From: Santo, TX
Member No.: 47182



foo_dsp_yac v1.1

New version posted. As described above except the tag and filter path are user selectable. Additional controls for multi-threading, console info, and stripping leading/trailing zeros from the filter kernel. It's faster, too.
Go to the top of the page
+Quote Post
odyssey
post Oct 14 2010, 08:59
Post #3





Group: Members
Posts: 2296
Joined: 18-May 03
From: Denmark
Member No.: 6695



Works great smile.gif I'm just using it with EQ-modified unit2k impulse files that also works on the old component.

I'm a little curious how I create impulse-files for different sample rates. I suppose I need a 2k pulse in the native samplerate (i.e. I can't just adjust the samplerate of the unit2k impulse)?

I didn't do much extensive testing yet. I need to create all sorts of different EQ's first smile.gif


--------------------
Can't wait for a HD-AAC encoder :P
Go to the top of the page
+Quote Post
MC Escher
post Oct 14 2010, 10:22
Post #4





Group: Members
Posts: 151
Joined: 12-May 04
Member No.: 14050



If I don't know I'm probably not the audience for this plugin, but I'm curious: what's a convolver and what does it do?
Go to the top of the page
+Quote Post
odyssey
post Oct 14 2010, 10:50
Post #5





Group: Members
Posts: 2296
Joined: 18-May 03
From: Denmark
Member No.: 6695



QUOTE (MC Escher @ Oct 14 2010, 10:22) *
If I don't know I'm probably not the audience for this plugin, but I'm curious: what's a convolver and what does it do?

It uses an impulse file to transform the audio. I'm not too much into the technical details, but you can take a simple impulse file (I use the Unitpulse2K.wav from the Misc-package) and perform some processing on it (e.g. EQ, sometimes reverb and stuff - Though, reverb won't work with this component). Define the impulse file in the tags as described above and it will perform the processing on the audio.

It gives you pretty good quality on EQ, as I've noticed artifacts using the built-in EQ in foobar2000. Instead I use a better parametric EQ in an audio editor on the impulse file. With this component, you can create different impulse-files for different tracks, whereas the older convolve-component only uses a static impulse file.


--------------------
Can't wait for a HD-AAC encoder :P
Go to the top of the page
+Quote Post
j_b
post Oct 14 2010, 13:57
Post #6





Group: Members
Posts: 33
Joined: 19-September 07
From: Santo, TX
Member No.: 47182



QUOTE (odyssey @ Oct 14 2010, 01:59) *
Works great smile.gif I'm just using it with EQ-modified unit2k impulse files that also works on the old component.

I'm a little curious how I create impulse-files for different sample rates. I suppose I need a 2k pulse in the native samplerate (i.e. I can't just adjust the samplerate of the unit2k impulse)?

I didn't do much extensive testing yet. I need to create all sorts of different EQ's first smile.gif

A unit pulse is the same regardless of sample rate: a one in a sea of zeros. You can use a tool, like sndfile-convert, to change the sample rate stored in the wave file header. Depending on the nature of the impulse response, you may need a longer unit pulse file for higher sample rates.
Go to the top of the page
+Quote Post
j_b
post Oct 14 2010, 14:01
Post #7





Group: Members
Posts: 33
Joined: 19-September 07
From: Santo, TX
Member No.: 47182



QUOTE (MC Escher @ Oct 14 2010, 03:22) *
If I don't know I'm probably not the audience for this plugin, but I'm curious: what's a convolver and what does it do?

Convolution is a mathematical way of combining two signals to form a third signal. It is the single most important technique in Digital Signal Processing. In digital audio, convolution is used to filter, shape, or color the recorded sound.
Go to the top of the page
+Quote Post
knutinh
post Oct 15 2010, 16:18
Post #8





Group: Members
Posts: 569
Joined: 1-November 06
Member No.: 37047



QUOTE (j_b @ Oct 14 2010, 15:01) *
QUOTE (MC Escher @ Oct 14 2010, 03:22) *
If I don't know I'm probably not the audience for this plugin, but I'm curious: what's a convolver and what does it do?

Convolution is a mathematical way of combining two signals to form a third signal. It is the single most important technique in Digital Signal Processing. In digital audio, convolution is used to filter, shape, or color the recorded sound.

Further:
Any linear, time-invariant system can be expressed as a convolution. Many/most physical systems of interest belong to the LTI cathegory (or can be approximated as one).

-k
Go to the top of the page
+Quote Post
romor
post Aug 16 2012, 20:47
Post #9





Group: Members
Posts: 670
Joined: 16-January 09
Member No.: 65630



Is it possible to make this DSP gapless?

While playing with it I noticed this:
1. Regardless output device, if buffer length is set low (i.e. 100 ms), sound is outputted with dense glitches like in pattern:


2. There is issue with "convolver (gapless)" DSP component which I reported here: http://www.hydrogenaudio.org/forums/index....mp;#entry805524


--------------------
scripts: http://goo.gl/M1qVLQ
Go to the top of the page
+Quote Post
j_b
post Aug 17 2012, 14:42
Post #10





Group: Members
Posts: 33
Joined: 19-September 07
From: Santo, TX
Member No.: 47182



QUOTE (romor @ Aug 16 2012, 12:47) *
Is it possible to make this DSP gapless?

No.

QUOTE (romor @ Aug 16 2012, 12:47) *
While playing with it I noticed this:
1. Regardless output device, if buffer length is set low (i.e. 100 ms), sound is outputted with dense glitches like in pattern:

Convolution is CPU intensive and having sufficient buffer space allows the music to continue while the next chunk of samples is being processed.

QUOTE (romor @ Aug 16 2012, 12:47) *
2. There is issue with "convolver (gapless)" DSP component which I reported here:

The reasons a filter cannot be applied include:
* The file length is 0.
* More than two channels.
* The sample rate doesn't not match the music.
* More than 16K samples.
* The foobar service that reads the filter reports an error.
Go to the top of the page
+Quote Post
AndreaT
post Dec 24 2012, 15:34
Post #11





Group: Members
Posts: 85
Joined: 15-May 12
From: Italy
Member No.: 99856



Hello J_B,

sorry for placing a "stupid" question, but I need to understand if this convolver is good for RDR application where a single WAV file is used to provide a Stereo impulse correction filter.

I precise that the WAV file is Stereo, so L ch is independent by the R ch.

Regards, Andrea
Go to the top of the page
+Quote Post
j_b
post Dec 24 2012, 18:33
Post #12





Group: Members
Posts: 33
Joined: 19-September 07
From: Santo, TX
Member No.: 47182



The right channel of the music file is convolved with the right channel of the impulse response file. Likewise the left channel. There is no cross-channel convolution as commonly found in stereo convolution for HRTF and similar applications. foo_dsp_yac is really just a glorified tone control. I wrote it to add selective EQ to vintage stereo recordings where the vocals are on one channel and the instruments are on the other.
Go to the top of the page
+Quote Post
AndreaT
post Dec 25 2012, 18:29
Post #13





Group: Members
Posts: 85
Joined: 15-May 12
From: Italy
Member No.: 99856



Thank you J_B for the clarification.
Merry Xmas
Andrea
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 29th August 2014 - 12:15