I applied the patch to my system and it fixed the error! However, I get the following error which seems to be caused by a code not being able to handle more than 256 channels: > wfs@wfs16:~$ jackd -R -d alsa -C madifx_record_all -P madifx_playback_all > jackdmp 1.9.10 > Copyright 2001-2005 Paul Davis and others. > Copyright 2004-2014 Grame. > jackdmp comes with ABSOLUTELY NO WARRANTY > This is free software, and you are welcome to redistribute it > under certain conditions; see the file COPYING for details > no message buffer overruns > no message buffer overruns > no message buffer overruns > JACK server starting in realtime mode with priority 10 > self-connect-mode is "Don't restrict self connect requests" > audio_reservation_init > Acquire audio card Audio0 > creating alsa driver ... madifx_playback_all|madifx_record_all|1024|2|48000|0|0|nomon|swmeter|-|32bit > configuring for 48000Hz, period = 1024 frames (21.3 ms), buffer = 2 periods > ALSA: final selected sample format for capture: 32bit float little-endian > ALSA: use 8 periods for capture > ALSA: final selected sample format for playback: 32bit float little-endian > ALSA: use 8 periods for playback > jackd: ../linux/alsa/JackAlsaDriver.cpp:122: virtual int Jack::JackAlsaDriver::Attach(): Assertion `fCaptureChannels < 256' failed. > Aborted (core dumped) What could be the problem here? 2017-01-27 12:08 GMT+01:00 Takashi Iwai <tiwai@xxxxxxx>: > On Thu, 26 Jan 2017 17:13:50 +0100, > Clemens Ladisch wrote: >> >> Jörg Müller wrote: >> > I created an .asoundrc with 194 inputs for each card. >> > >> > pcm_multi.c:1060: snd_pcm_multi_open: Assertion `!slave_map[sidxs[i]][schannels[i]]' failed. >> > >> > To me, this looks like a bug. >> >> --8<---------------------------------------------------------------->8-- >> pcm: multi: allocate slave_map dynamically >> >> Using a fixed-size buffer for an arbitrarily-sized list is not a good idea. >> >> Signed-off-by: Clemens Ladisch <clemens@xxxxxxxxxx> > > It turned out that we don't need the array at all. > I'll apply the following cleanup (and fix) patch. My previous one was > buggy. > > > thanks, > > Takashi > > -- 8< -- > From: Takashi Iwai <tiwai@xxxxxxx> > Subject: [PATCH] pcm: multi: Drop the fixed slave_map[] in snd_pcm_multi_open() > > slave_map[] in snd_pcm_multi_open() is a fixed size array and > obviously we have no overflow check, and eventually the program gets > an error when more than 64 channels are used. > > Although we can modify the code to allocate the array dynamically, it > turned out that we can drop the whole slave_map[] thingy in this > function when looking at the code closely. In the past, it was used > to identify the one-to-many mapping. But the check was dropped, and > now it's nothing more than a sanity check. > > Reported-by: Jörg Müller <joerg.mueller7744@xxxxxxxxx> > Signed-off-by: Takashi Iwai <tiwai@xxxxxxx> > --- > src/pcm/pcm_multi.c | 3 --- > 1 file changed, 3 deletions(-) > > diff --git a/src/pcm/pcm_multi.c b/src/pcm/pcm_multi.c > index c4b1fba32cac..9e4be7122c0f 100644 > --- a/src/pcm/pcm_multi.c > +++ b/src/pcm/pcm_multi.c > @@ -1015,7 +1015,6 @@ int snd_pcm_multi_open(snd_pcm_t **pcmp, const char *name, > snd_pcm_multi_t *multi; > unsigned int i; > snd_pcm_stream_t stream; > - char slave_map[64][64] = { { 0 } }; > int err; > > assert(pcmp); > @@ -1059,8 +1058,6 @@ int snd_pcm_multi_open(snd_pcm_t **pcmp, const char *name, > bind->slave_channel = schannels[i]; > if (sidxs[i] < 0) > continue; > - assert(!slave_map[sidxs[i]][schannels[i]]); > - slave_map[sidxs[i]][schannels[i]] = 1; > } > multi->channels_count = channels_count; > > -- > 2.11.0 > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel