Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_convolve - Impulse response convolver (Read 329228 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_convolve - Impulse response convolver

Reply #125
I always add resampler DSP just before convolver.


That is what I wanted to avoid!

I know there are different resampling plugins for Foobar2000 (SOX for instance). I briefly considered just having one convolving filter in 24/192 or 24/96 with SOX-resampling prior to foo_convolve.dll in the DSP-chain.

But ultimately my goal would be to have the convolved files streamed to the client without sample rate conversion. Which, as I said, would require filter files (and beforehand - acoustic measurement) in up to 4 different resolutions (16/44.1, 16/48, 24/96 and 24/192). I have a few FLAC files in 24 bit / 192 kHz, and lots in 24/96...

The reason is, I believe each resampling process potentially harms the signal. That is not just my personal opinion, but what many listening tests have shown... Plus, I have heard that resamplers have the biggest problems with material of a resolution which equals the one chosen as output resolution. Which would mean the worst performance on my HD material. I'd want to avoid that!

Granted, the most practical solution would be to first resample and then apply one high resolution filter file. Which is possible with the existing plugins. The audiophile approach is the more complex one, with multiple filters - one for each resolution. I hope to inspire someone to help make the latter possible...


Cheers, Martin

foo_convolve - Impulse response convolver

Reply #126
Martin,
I’m in the process of ripping my LP library and I noticed that some of my older LPs could benefit from a little EQ.  So, having the need and not wanting to wait for someone else to do it, I wrote it my self: A convolver plugin that chooses the impulse file based on a track tag and the current sample rate.

It took me a couple days because I am just learning the Foobar API and I don’t know C++. Most of the time was spent combing through example source code looking for bits that did what I needed. However, cutting and pasting invariably resulted in the compiler barfing or Foobar crashing. I don’t know the secret incantations to make C++ do what I want. I ended up writing the whole thing is C, bypassing most of the Foobar API. As a result, the plugin probably breaks a lot of rules and restrictions the API is meant to enforce. It works for me, though, and that’s all I want.

Please don’t ask me for a copy. What I did is experimental, just for me, and not release quality. I’m posting this to spur further development of foo_convolve to make it choose impulse files based on playing track’s tags and the current sample rate. On the other hand, if someone would point me to example code that can read the cached tags and read arbitrary audio files from the context of a DSP plugin, I could proceed and eventually produce something that could be shared.


foo_convolve - Impulse response convolver

Reply #127
I wrote it my self: A convolver plugin that chooses the impulse file based on a track tag and the current sample rate.

    I had wet dreams about such feature in the convolver component!
Please don’t ask me for a copy. What I did is experimental, just for me, and not release quality. I’m posting this to spur further development of foo_convolve to make it choose impulse files based on playing track’s tags and the current sample rate. On the other hand, if someone would point me to example code that can read the cached tags and read arbitrary audio files from the context of a DSP plugin, I could proceed and eventually produce something that could be shared.

Please do! I love you 
Can't wait for a HD-AAC encoder :P

foo_convolve - Impulse response convolver

Reply #128
Hello Garf ,
I hope you open the source code to the public.
Purpose:
・The recompile for the latest version.
・I want to remodel it to four channel output simultaneously.

(I am sorry by poor English. )

foo_convolve - Impulse response convolver

Reply #129
Hello Garf ,
I hope you open the source code to the public.

Not likely to happen, because:
?The recompile for the latest version.

The version on the official components site already works with the latest foobar2000. Also, it requires a closed source commercial library to do the convolving.
?I want to remodel it to four channel output simultaneously.

It should already support convolving as many channels input as long as the impulse has a matching number of channels.

foo_convolve - Impulse response convolver

Reply #130
I noticed a problem with certain impulse responses where the impulse is not the first sample.

Since such impulse responses introduce a delay the audio track will start a couple of samples later and the end will be cut-off early by the same number of samples

It would be nice to have an option to throw away the initial delay samples and end the track normally.


edit: Please note that changing the impulse responses is not an option, because it will alter the results. :/

foo_convolve - Impulse response convolver

Reply #131
Or instead of throwing away the initial delay samples / adding at the end maybe some kind of buffering and left shifting of the samples would work.

foo_convolve - Impulse response convolver

Reply #132
Buffering would break gapless playback.

Another idea would be for you to add a silence:// track to the end of the conversion batch, and either convert all files to a single output track, or append them manually with an editor. Oh, and setting it to not reset the DSPs between tracks is essential for that manual padding to work.

foo_convolve - Impulse response convolver

Reply #133
Cutting each file manually after conversion with a wave editor. That's not the most comfortable workaround, is it? 

foo_convolve - Impulse response convolver

Reply #134
And "Mix adjust" option doesn't work properly with such impulses...

foo_convolve - Impulse response convolver

Reply #135
Hi,

here’s one more guy who’d like do convolve each stereo channel separately in order to simulate speaker over headphones. This thread doesn’t look like the plugin’s development is going on, but I’ll try to explain what would be necessary to do anyway:

A normal stereo recording has to channels. If you listen to it with speakers, you here both channels with both ears. Sounds like speakers do, including the room acoustics. Using headphones, you here the left channel with your left ear and the right channel with your right ear. Sounds sort of not so good.

In order to simulate speakers, the plugin would have to convert each stereo channel to a mono recording (which has two channels!), convolve the left two-channel mono signal with a stereo impulse response for sounds coming from the left (azimuth 30°), and convolve the right two-channel mono signal with a stereo impulse response for sounds coming from the right (azimuth 330° oder -30°). So each original stereo-channel has to be doubled, the twins have to be treated as stereo signals and convolved with a stereo impulse response (different ones for each twin couple/doubled stereo side), with makes the original stereo channel a new stereo signal. At the end, you have for channels, i.e. two stereo signals, which you have to mix. I hope my explanation isn’t to confusing. One important conclusion is that this can’t be done by combining the convolution plugin with a crossmixing plugin. This really wouldn’t work, never ever.

And there still isn’t any room response. What I described would sound as if your headphones were speakers in R³, so, with no reflections at all, as long as the HRTF you use is really only an HRTF, not including room information.

I really would appreciate this functionality in the plugin, because it is a lot of work to open every music file in Audacity, exporting the channels separately as mono files, convolve-processing them with foobar2000 using HRTFs, mixing them together again in Audacity and exporting all this as a new music file, which has a certain HRTF inherent. This would mean to have two different verions of the whole music collection.

I would instantly programm such a plugin for foobar2000, if I knew how.

It would be even greater though, to have this trick system wide, not only in foobar2000. Binaural phantasy.

foo_convolve - Impulse response convolver

Reply #136
A normal stereo recording has to channels. If you listen to it with speakers, you here both channels with both ears. Sounds like speakers do, including the room acoustics. Using headphones, you here the left channel with your left ear and the right channel with your right ear. Sounds sort of not so good.

There are tons of components for foobar2000 optimized for headphone usage and also ones that does exactly what you propose - Why would you need to use convolver, to achieve just that?
Can't wait for a HD-AAC encoder :P


foo_convolve - Impulse response convolver

Reply #138
A normal stereo recording has to channels. If you listen to it with speakers, you here both channels with both ears. Sounds like speakers do, including the room acoustics. Using headphones, you here the left channel with your left ear and the right channel with your right ear. Sounds sort of not so good.

There are tons of components for foobar2000 optimized for headphone usage and also ones that does exactly what you propose - Why would you need to use convolver, to achieve just that?

As I said, you have to convolve each stereo channel with two HRTFs in order to simulate speakers.

@edd: http://www.hydrogenaudio.org/forums/index....showtopic=54966

That sounds great, have to look at it closer later on. Thanks!

BTW: I’ve tried the long way over Audacity with several music files. Sounds like speakers in an anechoic chamber (as it’s supposed to), which sounds like … headphones. Almost. But it works. I need the RIR of a proper recording studio.

foo_convolve - Impulse response convolver

Reply #139
Unfortunately the plugin doesn’t work anymore with foobar.

foo_convolve - Impulse response convolver

Reply #140
It would be even greater though, to have this trick system wide, not only in foobar2000. Binaural phantasy.

I made it (more or less), with JACK. Ingenious. I think, you don’t even need the impulse response of a good recording studio/mixing studio. You’ll just notice, that some recordings sound strange without the reverb of a room.

foo_convolve - Impulse response convolver

Reply #141
It should already support convolving as many channels input as long as the impulse has a matching number of channels.

I can't make it to work:
Quote
Could not load impulse file (unexpected channel count).

Are you sure it's supported?

foo_convolve - Impulse response convolver

Reply #142
I use it all the time (Stereo Convolver 1.0.1) with version 1.1.5...

ahh, you werent talking about stereo convolver  just caught that

foo_convolve - Impulse response convolver

Reply #143
Hello Folks, as someone of you already stated, I confirm that the old 2006 plugin Convolver 0.3 doesn't work properly.

Please, is anyone there that could drive me to a good one for the current Foobar2000 v1.1 or the newer 1.2?


Thanks and regards, Andrea

foo_convolve - Impulse response convolver

Reply #144
It would be even greater though, to have this trick system wide, not only in foobar2000. Binaural phantasy.

I made it (more or less), with JACK. Ingenious. I think, you don’t even need the impulse response of a good recording studio/mixing studio. You’ll just notice, that some recordings sound strange without the reverb of a room.


Or the idea of hooking DirectSound/Xaudio2/WinMM to make it in games/emulators sounds rather appealing....hmm....

foo_convolve - Impulse response convolver

Reply #145
I noticed a problem with certain impulse responses where the impulse is not the first sample.

Since such impulse responses introduce a delay the audio track will start a couple of samples later and the end will be cut-off early by the same number of samples

It would be nice to have an option to throw away the initial delay samples and end the track normally.


edit: Please note that changing the impulse responses is not an option, because it will alter the results. :/


The track duration should probably be extended by the FFT length.

foo_convolve - Impulse response convolver

Reply #146
Hello Folks, as someone of you already stated, I confirm that the old 2006 plugin Convolver 0.3 doesn't work properly.

Please, is anyone there that could drive me to a good one for the current Foobar2000 v1.1 or the newer 1.2?


Thanks and regards, Andrea


Hmm, I wasn't aware that it stopped working? What's wrong with it?

foo_convolve - Impulse response convolver

Reply #147
Hi Garf,

I found a plug-in called "Gapless Convolver " ver 0.4.5 that is working better than the official ver 0.3, however I am not sure it working perfectly. No time yet to measure.

Anyhow, I am looking for something reliable and stereo (I would use stereo inverted impulse response for DRC application).

Regards, Andrea

foo_convolve - Impulse response convolver

Reply #148
Hello Garf,

I tested again the Convolver v 0.3 with the current 1.2beta of Foobar and it crashes everytime I try to open it from "View -> DSP -> Convolver" option, while it doesn't crash if I open from "File -> Preference -> DSP Manager....".

Stated this, I have to ask you if this Convolver is capable to handle Stereo inpulse WAV file.

For my Digital Room Correction purpose I need to have L channel correct differently from R channel, so I created a Stereo WAV impulse file having the two channel different.
However, doing so I am getting a bad sound, the stereo image is very bad (instable) and the bass are very poor.

So, just for fun, I made a new Stereo WAV file having both channels indentical (so it is a true mono file) and containing a new correction impulse computed from the average response of the stereo channels (in other words: (L+R)/2.
Doing so I get a stable stereo image and the bass are back to a reasonable good and balanced musciality.
However, because I am driving both channels correction by the same average corrective impulse, I am not getting the best possible results.

Any explanation for this?
Could you help me getting what I would have?

Many thanks and Merry Xmass.
Andrea


foo_convolve - Impulse response convolver

Reply #149
Hello Garf, I am sorry to have to confirm that the "official" Convolver ver 0.3 has problems (bugs??) (at least when playing stereo impulse).

As explained, my usage of a convolver is for DRC application, so a reverse impulse response is used for frequency response linearization.

I verified it comparing it vs. the well known ConvolverVST 4.4 and the matter is immediately audible (no need to go further in the investigation, just listen to it and you will understand).

Looking forward
Regards, Andrea