From a51ea6cf2ea9c5958fd1cfa088a4b292a0552a5b Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Thu, 15 Oct 2015 17:39:24 +0200 Subject: fix crash when creating subgroup-bus - fixes #6642 the actual issues is in the connection management: bundle.cc:323: void ARDOUR::Bundle::connect(): Assertion `N == other->nchannels().n_total()' failed. That could be resolved. However, combining tracks without panners will almost never do what the user really wants, so this case has been disabled for now. --- libs/ardour/route_group.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'libs/ardour/route_group.cc') diff --git a/libs/ardour/route_group.cc b/libs/ardour/route_group.cc index 032c85f6ce..036aede02e 100644 --- a/libs/ardour/route_group.cc +++ b/libs/ardour/route_group.cc @@ -456,18 +456,26 @@ RouteGroup::make_subgroup (bool aux, Placement placement) for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) { if ((*i)->output()->n_ports().n_midi() != 0) { - PBD::info << _("You cannot subgroup MIDI tracks at this time") << endmsg; + PBD::warning << _("You cannot subgroup MIDI tracks at this time") << endmsg; return; } } for (RouteList::iterator i = routes->begin(); i != routes->end(); ++i) { + if (!aux && nin != 0 && nin != (*i)->output()->n_ports().n_audio()) { + PBD::warning << _("You cannot subgroup tracks with different number of outputs at this time.") << endmsg; + return; + } nin = max (nin, (*i)->output()->n_ports().n_audio()); } try { - /* use master bus etc. to determine default nouts */ - rl = _session.new_audio_route (nin, 2, 0, 1); + /* use master bus etc. to determine default nouts. + * + * (since tracks can't have fewer outs than ins, + * "nin" currently defines the number of outpus if nin > 2) + */ + rl = _session.new_audio_route (nin, 2 /*XXX*/, 0, 1); } catch (...) { return; } -- cgit v1.2.3