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

Dummy channels #238

Open
josephernest opened this issue Jun 26, 2024 · 4 comments
Open

Dummy channels #238

josephernest opened this issue Jun 26, 2024 · 4 comments

Comments

@josephernest
Copy link

josephernest commented Jun 26, 2024

Hi Etienne,

I hope you are well since a few years.

I love your feature that watches in realtime C:\Users\User\FlexASIO.toml for changes, and immediately restart the driver, this is excellent! (I mean this feature #57 (comment)).

Now I can switch easily between:

  • 1: laptop config with built-in soundcard (1 stereo input, 2 stereo outputs)
  • 2: studio config with external USB soundcard (8 stereo inputs, 8 stereo inputs)

The only little problem I have is that when I switch to config (1), it resets this in Ableton:

image

and when I go back to (2), I have to reenable all the 16 checkboxes manually : click click click click click click click ... in Ableton to reenable all the channels.

Question: is there a way that, if I do [input] channels = 8 in the TOML config, dummy empty channels are reported to the DAW, even if the current soundcard has only 1 input channel?

Or another idea around this?

Current behaviour: if I do channels = 8 and my soundcard only has 1, then FlexASIO cannot be started in the DAW, it doesn't work. Could you add an option to consider all missing channels to be empty dummy channels ? i.e. a slience [0 0 0 0 ... 0] input/output stream...

@dechamps
Copy link
Owner

Oh hello @josephernest, it's been a while!

Some of the FlexASIO backends are able to downmix/upmix to adapt between the channel count specified in the channels option and what the hardware is actually configured for. However, I suspect that mostly only works for output, not input. I'm not sure any backend would natively support upmixing a mono input to 8 channels because that normally doesn't make much sense.

I could implement the feature that you describe but that seems like a really niche feature for a very contrived use case, to be honest. It would make more sense to file a request against Ableton to improve the behavior around dynamic changes in ASIO channel count.

That being said, I can think of at least one workaround you could use to achieve the same result. It's a bit involved, though. The idea is, you could use Equalizer APO to do this. If you set up Equalizer APO on your laptop built-in soundcard device, it should be possible to use it to upmix from 1 channel to 8 - and then FlexASIO (as well as all other Windows apps) will see 8 channels for that device. In fact you would even be able to choose whether you want the extra channels to be silence or copies of the original - see the Copy Equalizer APO command. There are a couple of caveats though: Equalizer APO has a bit of a learning curve, it will not work with WASAPI Exclusive nor WDM-KS because these bypass APOs, and this workaround will affect the behavior of your input device across your entire system, not just FlexASIO.

@josephernest
Copy link
Author

Oops, I spoke too soon (as I was not in my studio, I was planning this for the next day ;)):

Now I can switch easily between:

1: laptop config with built-in soundcard (1 stereo input, 2 stereo outputs)
2: studio config with external USB soundcard (8 stereo inputs, 8 stereo inputs)

Now I see PortAudioDevices.exe shows:

Device index: 46
Device name: "MOTU Analog 1-2 (MOTU Audio Wave for 64 bit)"
Default sample rate: 44100
Input: max channel count 2, default latency 0.003s (low) 0.01s (high)
Output: max channel count 0, default latency 0s (low) 0s (high)
Host API name: Windows WASAPI
Host API type: 13 [WASAPI]

The MOTU 828 mk3 interface is splitted into many input devices of "channel count : 2", instead of 1 input device with "channel count : 16"... :-(

This means I cannot use it with FlexASIO...

@dechamps
Copy link
Owner

dechamps commented Jun 27, 2024

The MOTU 828 mk3 interface is splitted into many input devices of "channel count : 2", instead of 1 input device with "channel count : 16"... :-(
This means I cannot use it with FlexASIO...

Yes, you've already reported this 5 years ago in #58. I'm afraid my answer on this hasn't changed - making this work would be non trivial and is beyond the amount of time and effort I am willing to spend.

@josephernest
Copy link
Author

josephernest commented Jun 27, 2024

Yes... When fiddling again with FlexASIO after a long pause, I had the same hope than I had 5 years, and then I rediscovered the same issue with the MOTU driver which splits everything in multiple devices :)

Edit: I've now found something! Disabling the checkbox "Use Stereo Pairs for Windows" in the MOTU audio interface config helped, and now I can see 8 channels in the same input device :-) To be continued...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants