Faits:
A. Par jugement du 27 juin 2008, le Tribunal correctionnel de l'arrondissement de l'Est vaudois a condamné A._, ressortissant suisse né en 1964, à une peine privative de liberté à vie, pour meurtre et assassinat de sa mère, respectivement d'une amie de celle-ci et de sa soeur. Cette condamnation a été confirmée par la Cour de cassation pénale du Tribunal cantonal vaudois, par arrêt du 29 octobre 2008.
A._ a recouru au Tribunal fédéral par acte du 13 février 2009. Le 25 février suivant, il a formé une demande de révision auprès de la Chambre des révisions du Tribunal cantonal, se prévalant d'un nouveau témoignage. La demande de révision a été admise le 23 novembre 2009, et la cause a été renvoyée au Tribunal d'arrondissement pour nouvelle instruction et nouveau jugement. Les débats ont ensuite été fixés à la première semaine de mars 2010. La procédure devant le Tribunal fédéral a été suspendue jusqu'à droit connu sur le rescisoire.
B. Par acte du 14 décembre 2009, A._ s'est adressé au Président du Tribunal d'arrondissement (ci-après: le Président) pour requérir sa mise en liberté. Il relevait qu'il n'existait plus de risque de collusion ou de réitération. De nationalité suisse et ayant tous ses biens en Suisse, il n'avait aucune attache à l'étranger. Avant son arrestation, il avait toujours donné suite aux convocations, et tenait à se présenter à l'audience pour démontrer son innocence. En dépit de l'importance de la peine encourue, il n'existait pas de risque de fuite.
Le 17 décembre 2009, le Président a rejeté la requête. Les charges découlant du jugement de condamnation étaient suffisantes. L'intéressé, brouillé avec les membres de sa famille, était en instance de divorce; sa situation financière était largement compromise et il ne prétendait plus avoir des attaches avec une amie qui lui rendait régulièrement visite en prison. Sa résidence aux Monts-de-Corsier ne constituait pas un lien suffisant avec la Suisse. Compte tenu de la peine maximale encourue, le risque de fuite était concret
Par arrêt du 14 janvier 2009, le Tribunal d'accusation du Tribunal cantonal vaudois a rejeté le recours formé par A._. Les arrêts précédents relatifs à la détention préventive (y compris un arrêt du Tribunal fédéral du 18 avril 2008, cause 1B_81/2008) avaient confirmé l'absence de liens suffisants avec la Suisse pour prévenir tout risque de fuite. Ce risque s'était renforcé après la première condamnation. Le prévenu faisait état d'une relation amoureuse, mais on ne saurait y voir un lien suffisamment fort pour empêcher une fuite. La caution proposée, de 50'000 fr., ne constituait pas une garantie suffisante, ce d'autant qu'elle devait être fournie par un tiers. Le port d'un bracelet électronique, même assorti de mesures complémentaires, n'empêcherait pas non plus une fuite. Le Tribunal d'accusation a enfin considéré que la durée de la détention préventive n'était pas excessive compte tenu de la peine possible et de l'absence de tout retard dans le déroulement de la procédure.
C. A._ forme, par acte du 22 janvier 2010, un recours en matière pénale par lequel il demande l'annulation de l'arrêt du Tribunal d'accusation et sa mise en liberté immédiate, le cas échéant sous conditions.
Le Tribunal d'accusation se réfère à son arrêt. Le Procureur général conclut au rejet du recours. Le recourant a répliqué.

Considérant en droit:
1. Conformément à l'art. 468 du code de procédure pénale vaudois (CPP/VD), après l'admission de la demande de révision, le Président du tribunal saisi statue sur la détention de l'accusé; il s'agit de détention préventive au sens de l'<ref-law>/VD. Les décisions prises à ce sujet sont des décisions en matière pénale au sens de l'<ref-law> (cf. <ref-ruling> consid. 1.1 p. 273).
Formé en temps utile (<ref-law>) contre une décision prise en dernière instance cantonale (<ref-law>) et qui touche le recourant dans ses intérêts juridiquement protégés (art. 81 al. 1 let. a et b ch. 1 LTF), le recours en matière pénale est recevable.
2. Dans un premier grief d'ordre formel, le recourant reproche au Tribunal d'accusation d'avoir statué sans lui laisser le temps de répliquer aux déterminations déposées par les parties civiles.
2.1 Compris comme l'un des aspects de la notion générale de procès équitable au sens de l'art. 29 al. 1 Cst., le droit d'être entendu garantit notamment le droit pour une partie à un procès de prendre connaissance de toute argumentation soumise au tribunal et de se déterminer à son propos, que celle-ci contienne ou non de nouveaux éléments de fait ou de droit, et qu'elle soit ou non concrètement susceptible d'influer sur le jugement à rendre. Il appartient en effet aux parties, et non au juge, de décider si une prise de position ou une pièce nouvellement versée au dossier contient des éléments déterminants qui appellent des observations de leur part. Ce droit à la réplique vaut pour toutes les procédures judiciaires (<ref-ruling> consid. 2.1). L'autorité peut se limiter dans un premier temps à communiquer la prise de position à titre d'information, sans avis formel de la possibilité de répliquer. La partie est ainsi mise en situation de faire ou non usage de cette possibilité; il lui incombe alors soit de le faire sans retard soit de demander un délai à cette fin. Si elle s'en abstient, elle est censée y avoir renoncé après l'écoulement d'un certain délai (<ref-ruling> consid. 4.8).
2.2 La cour cantonale a transmis le préavis du Ministère public au recourant, qui a répliqué le 11 janvier 2010. Le recourant a par la suite reçu les déterminations des parties civiles, transmises directement par leurs avocats le 12 janvier 2010, sans qu'un délai de réplique ne lui ait été imparti. Le principe de célérité régissant la procédure de détention préventive, impose certes à l'autorité de statuer à bref délai, de sorte que celui qui entend faire valoir son droit de réplique doit en principe se manifester rapidement. En l'occurrence toutefois, l'arrêt cantonal a été rendu deux jours plus tard, le 14 janvier 2010, ce qui n'a manifestement pas suffi au recourant pour réagir dans un délai approprié, au sens de la jurisprudence rappelée ci-dessus. Compte tenu de la nature formelle du droit de répliquer, il n'y a pas lieu de rechercher si les déterminations des parties civiles contenaient des éléments nouveaux susceptibles d'influer sur la décision au fond (<ref-ruling> consid. 4.3). Il ressort d'ailleurs de l'arrêt cantonal que ces observations n'ont pas été totalement ignorées.
3. Le recours doit être admis pour ce motif déjà, et indépendamment des chances de succès sur le fond (<ref-ruling> consid. 5.1 p. 390). Il n'y a donc pas à examiner les autres griefs soulevés par le recourant, en particulier celui relatif à la récusation du Juge cantonal Jean-François Meylan. La cause étant renvoyée au Tribunal d'accusation, le recourant pourra, le cas échéant, requérir la récusation de ce magistrat. L'admission du recours pour ce motif formel n'a évidemment pas pour conséquence la remise en liberté du recourant (<ref-ruling> consid. 1.5): il appartiendra au Tribunal d'accusation de rendre une nouvelle décision à bref délai, après avoir respecté le droit d'être entendu du recourant. Conformément à l'<ref-law>, il n'est pas perçu de frais judiciaires. L'Etat de Vaud versera au recourant une indemnité à titre de dépens (<ref-law>), ce qui rend sans objet la demande d'assistance judiciaire.

Par ces motifs, le Tribunal fédéral prononce:
1. Le recours est admis; l'arrêt attaqué est annulé et la cause est renvoyée au Tribunal d'accusation pour nouvelle décision au sens des considérants.
2. Il n'est pas perçu de frais judiciaires.
3. Une indemnité de dépens de 2000 fr. est allouée au recourant, à la charge du canton de Vaud.
4. La demande d'assistance judiciaire est sans objet.
5. Le présent arrêt est communiqué au mandataire du recourant, au Ministère public et au Tribunal d'accusation du Tribunal cantonal du canton de Vaud.
Lausanne, le 17 février 2010
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge présidant: Le Greffier:
Aemisegger Kurz