Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Multichannel processing #254

Closed
jeanloupPecquais opened this issue Mar 29, 2022 · 4 comments
Closed

[FEATURE] Multichannel processing #254

jeanloupPecquais opened this issue Mar 29, 2022 · 4 comments
Assignees
Labels
dsp enhancement New feature or request

Comments

@jeanloupPecquais
Copy link

Hello !

Is there any chance to get a multi-channel version of the ChowTape model? With immersive audio becoming more and more present, there is a real lack of saturation plug-in that can handle more than stereo. 16 in / 16 out would be perfect for working up to 3rd order ambisonic or to handle some Dolby Atmos beds (7.1.2).

Hope it makes sense, thank you !

@jeanloupPecquais jeanloupPecquais added the enhancement New feature or request label Mar 29, 2022
@jeanloupPecquais jeanloupPecquais changed the title [FEATURE] [FEATURE] Multichannel processing Mar 29, 2022
@jatinchowdhury18
Copy link
Owner

jatinchowdhury18 commented Mar 29, 2022

Hi! Yeah, having multi-channel support would be very cool. Currently there are a few roadblocks that will have to be figured out:

The main one is that the tape hysteresis algorithm is parallelized across the number of channels using SIMD registers. Since the that processing is double-precision, and most SIMD instruction sets support SIMD registers that can hold two double-precision values, it works out just right for stereo input, and mono input can be dealt with trivially as well. For more than two channels, we would need to break up the input buffer into sets of two (or fewer) channels, and process each set one-by-one.

Beyond that, there are a few parts of the plugin (e.g. mid-side mode, azimuth) that expect a stereo input, so those parameters would either need to be removed when the plugin is being used in a multi-channel context, or the algorithms would need to be adapted to each specific channel configuration.

So I think it should be possible, but it will need some thought and time. I'll see if I can make some time to investigate a bit further in the next couple weeks.

@jatinchowdhury18
Copy link
Owner

Multi-channel support has now been added with #255! The current implementation is intended to support any channel configuration, so long as the number of input and output channels are the same.

So far I've been doing some testing mostly in 5.1 and 7.1, but as I don't typically use these channel layouts, I'm sure there are edge cases that my testing has missed. If @jeanloupPecquais or anyone else has a little bit of time to test, either with the nightly builds, or building from the develop branch, that would be greatly appreciated!

@jpecquais
Copy link

Hello !
Thank you very much for this ! I tested it this morning on a 3rd order ambisonic bus, it seems to work fine ! I'll let you know if I encounter any issue.

@jatinchowdhury18
Copy link
Owner

Glad to hear it's working for you! Thanks for testing 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dsp enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants