Faits: A. A._, ressortissant algérien né en 1983, a été arrêté le 20 septembre 2011 et mis en prévention de tentatives de meurtre, voire d'assassinat, pour avoir participé avec au moins cinq autres personnes, le 7 août 2011, à une agression au cours de laquelle B._ a été frappé et poignardé. Il a été reconnu par la victime, mais nie toute participation à cette agression. Il est également mis en cause pour une tentative de meurtre commise le 16 septembre 2011. La détention provisoire a été prolongée jusqu'au 22 décembre 2011, puis jusqu'au 16 mars 2012. B. Par ordonnance du 13 mars 2012, le Tribunal des mesures de contrainte du canton de Genève (Tmc) a refusé de prolonger une nouvelle fois la détention. Le prévenu avait reconnu s'être trouvé sur les lieux au moment de la première agression, mais contestait toute participation, sans se souvenir s'il avait un couteau. La victime l'avait identifié, mais était revenue sur ses déclarations lors d'une audience de confrontation. Aucun autre élément ne venait confirmer les charges à l'encontre du prévenu, de sorte que celles-ci apparaissaient insuffisantes. Par acte du 13 mars 2012, le Ministère public du canton de Genève a déclaré recourir auprès de la Chambre pénale de recours de la Cour de justice contre cette ordonnance. Il demandait le maintien en détention du prévenu, pour trois mois. Invité à se déterminer dans les trois jours, le prévenu a conclu à l'irrecevabilité du recours (l'ordonnance attaquée étant inexactement désignée), et à son rejet sur le fond. A l'invitation de la Chambre pénale de recours, le Ministère public a déposé une réplique le 22 mars 2012, reprenant dans le détail le rôle joué selon lui par chacun des cinq prévenus. S'agissant de A._, il relevait que celui-ci avait admis sa présence sur les lieux de la première agression, et qu'il apparaissait muni d'un couteau sur les images de vidéosurveillance. Il avait également été reconnu par des tiers. Les rétractations de la victime étaient manifestement dictées par la crainte. Cette réplique a été transmise le vendredi 23 mars 2012 au prévenu, pour information. Celui-ci l'a reçue le lundi 26 mars et a conclu à son irrecevabilité: le Ministère public ne disposait pas d'un droit de réplique, dès lors qu'un second échange d'écritures (incluant un droit de dupliquer) n'avait pas été ordonné. C. Par arrêt du 30 mars 2012, la Chambre pénale a admis le recours du Ministère public et ordonné le maintien de la détention provisoire jusqu'au 13 juin 2012. En dépit de l'absence d'éléments nouveaux, les charges suffisantes avaient déjà été reconnues dans des arrêts précédents de la Chambre pénale de recours, dont le Tmc ne pouvait faire abstraction. La présence des prévenus lors de l'agression du 7 août 2011 était attestée par les enregistrements vidéo, où A._ était aperçu poursuivant la victime; l'un des prévenus avait admis sa participation à l'agression et avait également impliqué les autres prévenus. Les charges étaient également suffisantes s'agissant de la seconde agression. D. Par acte du 2 mai 2012, A._ forme un recours en matière pénale par lequel il demande l'annulation de l'arrêt précité, la confirmation de l'ordonnance du Tmc et sa remise en liberté. Subsidiairement, il conclut au renvoi de la cause à la cour cantonale pour nouvelle décision au sens des considérants. Il demande l'assistance judiciaire. La Chambre pénale de recours persiste dans les termes de son arrêt. Le Ministère public conclut au rejet du recours