Faits:
Faits:
A. X._, ressortissant guinéen, a été arrêté le 4 avril 2002 avec deux comparses, et placé en détention préventive sous l'inculpation de violation grave de la LStup et blanchissage d'argent. Il lui est en substance reproché d'avoir participé à un trafic portant sur 274 g de cocaïne.
Par jugement du 11 décembre 2003, le Tribunal correctionnel de l'arrondissement de la Côte l'a condamné à quatre ans et demi de réclusion et à quinze ans d'expulsion de Suisse.
Sur recours du Ministère public, la Cour de cassation pénale du Tribunal cantonal vaudois a, par arrêt du 12 juillet 2004, annulé ce jugement et renvoyé la cause au tribunal, pour nouvelle instruction et nouveau jugement. Alors que la cause devait être jugée par un tribunal élargi, le président du tribunal avait finalement renoncé à une telle composition pour éviter des changements d'avocats et des incidents, à l'approche de l'audience. S'agissant du principal accusé, rien ne justifiait une limitation du pouvoir d'appréciation à propos de la peine. Le jugement a aussi été annulé à l'égard des deux autres coaccusés, dont X._, car ceux-ci pouvaient aussi avoir bénéficié du plafonnement de la peine.
Sur recours du Ministère public, la Cour de cassation pénale du Tribunal cantonal vaudois a, par arrêt du 12 juillet 2004, annulé ce jugement et renvoyé la cause au tribunal, pour nouvelle instruction et nouveau jugement. Alors que la cause devait être jugée par un tribunal élargi, le président du tribunal avait finalement renoncé à une telle composition pour éviter des changements d'avocats et des incidents, à l'approche de l'audience. S'agissant du principal accusé, rien ne justifiait une limitation du pouvoir d'appréciation à propos de la peine. Le jugement a aussi été annulé à l'égard des deux autres coaccusés, dont X._, car ceux-ci pouvaient aussi avoir bénéficié du plafonnement de la peine.
B. Le 20 août 2004, X._ a demandé sa mise en liberté provisoire au Président de la Cour de cassation. Celui-ci a rejeté la demande le 23 août 2004.
Par arrêt du 15 septembre 2004, la Cour de cassation a confirmé cette décision. Il existait un risque de fuite, compte tenu de l'absence d'attaches du recourant avec la Suisse et de la peine de réclusion encourue, dont il était peu probable qu'elle soit inférieure à la peine initialement prononcée. La durée de la détention préventive (deux ans et demi) était également compatible avec la peine encourue. Le principe de célérité ne s'opposait pas au maintien en détention, tant que le principe de la proportionnalité était respecté.
Par arrêt du 15 septembre 2004, la Cour de cassation a confirmé cette décision. Il existait un risque de fuite, compte tenu de l'absence d'attaches du recourant avec la Suisse et de la peine de réclusion encourue, dont il était peu probable qu'elle soit inférieure à la peine initialement prononcée. La durée de la détention préventive (deux ans et demi) était également compatible avec la peine encourue. Le principe de célérité ne s'opposait pas au maintien en détention, tant que le principe de la proportionnalité était respecté.
C. X._ forme un recours de droit public avec demande d'assistance judiciaire. Il conclut à l'annulation de ce dernier arrêt, ainsi qu'à sa mise en liberté.
Le Ministère public propose le rejet du recours, en relevant que la date du nouveau jugement a été fixée au 22 décembre 2004. Le recourant a répliqué.

Le Tribunal fédéral considère en droit:
Le Tribunal fédéral considère en droit:
1. Le recours de droit public est formé contre un arrêt rendu en dernière instance cantonale (art. 86 al. 1 OJ). Le recourant, personnellement touché par l'arrêt attaqué qui rejette sa demande de mise en liberté, a qualité pour recourir selon l'art. 88 OJ. Par exception à la nature cassatoire du recours de droit public, le recourant peut conclure non seulement à l'annulation de l'arrêt cantonal, mais aussi à sa mise en liberté immédiate (<ref-ruling> consid. 4b/aa p. 333).
1. Le recours de droit public est formé contre un arrêt rendu en dernière instance cantonale (art. 86 al. 1 OJ). Le recourant, personnellement touché par l'arrêt attaqué qui rejette sa demande de mise en liberté, a qualité pour recourir selon l'art. 88 OJ. Par exception à la nature cassatoire du recours de droit public, le recourant peut conclure non seulement à l'annulation de l'arrêt cantonal, mais aussi à sa mise en liberté immédiate (<ref-ruling> consid. 4b/aa p. 333).
2. Le recourant a fait l'objet d'un jugement de condamnation le 11 décembre 2003; celui-ci a toutefois été annulé, avec renvoi de la cause à un Tribunal correctionnel élargi. A défaut de condamnation exécutoire le recourant reste détenu à titre préventif, et les conditions posées à l'<ref-law>/VD sont applicables.
Le recourant ne conteste pas l'existence de charges suffisantes, telles qu'elles ressortent en particulier du jugement du 11 décembre 2003. Il ne remet pas non plus sérieusement en cause le risque de fuite confirmé par la cour cantonale. Il relève que l'un de ses coaccusés s'est évadé et ne se présentera pas à l'audience de jugement, alors que les prévenus devaient être jugés ensemble. Cela ne supprime en rien le risque de fuite: requérant d'asile guinéen, le recourant n'a aucune attache avec la Suisse où il n'a ni famille, ni travail. Le premier jugement, le condamnant à quatre ans et de demi de réclusion, ainsi que son renvoi devant une juridiction susceptible de le condamner plus lourdement, constituent autant de raisons évidentes pour tenter de se soustraire à la justice. Le risque de fuite est indéniable.
Le recourant ne conteste pas l'existence de charges suffisantes, telles qu'elles ressortent en particulier du jugement du 11 décembre 2003. Il ne remet pas non plus sérieusement en cause le risque de fuite confirmé par la cour cantonale. Il relève que l'un de ses coaccusés s'est évadé et ne se présentera pas à l'audience de jugement, alors que les prévenus devaient être jugés ensemble. Cela ne supprime en rien le risque de fuite: requérant d'asile guinéen, le recourant n'a aucune attache avec la Suisse où il n'a ni famille, ni travail. Le premier jugement, le condamnant à quatre ans et de demi de réclusion, ainsi que son renvoi devant une juridiction susceptible de le condamner plus lourdement, constituent autant de raisons évidentes pour tenter de se soustraire à la justice. Le risque de fuite est indéniable.
3. Le recourant reproche à la Cour de cassation d'avoir violé la présomption d'innocence en émettant dans son arrêt des remarques laissant entendre qu'il était d'ores et déjà tenu pour coupable des faits qui lui sont reprochés: selon la cour cantonale, le recourant s'était rendu en Suisse "pour s'y livrer à un vaste trafic de stupéfiants, aux larges ramifications"; il s'exposait "à une peine de réclusion, dont il apparaît peu probable que la durée soit inférieure à quatre ans et demi, ainsi qu'à une mesure d'expulsion conséquente"; "il était l'un des piliers du réseau; le recourant s'est en outre rendu coupable de blanchiment d'argent". Le recourant estime que, formulées par l'instance susceptible de connaître d'un recours contre une éventuelle nouvelle condamnation, ces remarques pourraient influencer l'autorité de jugement.
3.1 La présomption d'innocence, garantie notamment par les art. 6 par. 2 CEDH et 32 al. 1 Cst., est violée lorsque l'autorité de jugement - ou toute autre autorité ayant à connaître de l'affaire à un titre quelconque - désigne une personne comme coupable d'un délit, sans réserve et sans nuance, incitant ainsi l'opinion publique à tenir la culpabilité pour acquise et préjugeant de l'appréciation des faits par l'autorité appelée à statuer au fond (<ref-ruling> consid. 3b p. 331).
3.2 Saisie d'une demande de mise en liberté formée après le prononcé d'une première condamnation, la cour cantonale pouvait difficilement faire abstraction des faits retenus dans le premier jugement, même si celui-ci a été annulé pour des raisons tenant à la mesure de la peine. Le recourant avait déposé un recours joint contre la première condamnation, mais il ne prétend pas avoir contesté la substance des faits qui lui sont reprochés. Dans ces conditions, même si certaines affirmations paraissent relativement catégoriques (s'agissant notamment de la participation à un trafic de stupéfiants et de la commission d'actes de blanchiment), elles paraissent directement reprises de la décision de renvoi et des constatations effectuées par les premiers juges. Cela ressort d'expressions telles que "en l'état du dossier", "la gravité des faits qui sont reprochés au recourant", "le recourant est renvoyé en jugement pour..." et "il paraît peu probable...". Il aurait certes été préférable que la Cour de cassation recoure à davantage de précautions de langage, tel que l'usage du conditionnel, mais, considérées dans le contexte actuel de la procédure pénale, les affirmations mentionnées ci-dessus ne violent pas la présomption d'innocence. Il est peu vraisemblable que les juges appelés à statuer à nouveau se sentent liés par des remarques faites dans le cadre d'une procédure relative à la détention préventive.
3.2 Saisie d'une demande de mise en liberté formée après le prononcé d'une première condamnation, la cour cantonale pouvait difficilement faire abstraction des faits retenus dans le premier jugement, même si celui-ci a été annulé pour des raisons tenant à la mesure de la peine. Le recourant avait déposé un recours joint contre la première condamnation, mais il ne prétend pas avoir contesté la substance des faits qui lui sont reprochés. Dans ces conditions, même si certaines affirmations paraissent relativement catégoriques (s'agissant notamment de la participation à un trafic de stupéfiants et de la commission d'actes de blanchiment), elles paraissent directement reprises de la décision de renvoi et des constatations effectuées par les premiers juges. Cela ressort d'expressions telles que "en l'état du dossier", "la gravité des faits qui sont reprochés au recourant", "le recourant est renvoyé en jugement pour..." et "il paraît peu probable...". Il aurait certes été préférable que la Cour de cassation recoure à davantage de précautions de langage, tel que l'usage du conditionnel, mais, considérées dans le contexte actuel de la procédure pénale, les affirmations mentionnées ci-dessus ne violent pas la présomption d'innocence. Il est peu vraisemblable que les juges appelés à statuer à nouveau se sentent liés par des remarques faites dans le cadre d'une procédure relative à la détention préventive.
4. Le recourant se plaint aussi d'une violation du principe de célérité (art. 31 al. 3 Cst. et 5 par. 3 CEDH). Il reproche à la Cour de cassation de n'avoir pas examiné s'il existait des retards injustifiés dans le cours de la procédure pénale. Il ne se plaint toutefois pas à ce sujet d'un déni de justice formel, mais reprend ses arguments de fond. Il relève que l'instruction a été clôturée le 25 juillet 2003, que l'audience de jugement s'est tenue les 10 et 11 décembre 2003 et que le jugement a été annulé le 12 juillet 2004 par la Cour de cassation, dont les considérants ont été communiqués le 24 août suivant, soit huit mois et demi après le jugement. Ces retards incomberaient exclusivement aux autorités. Dans un grief distinct, le recourant estime par ailleurs que la durée de la détention déjà subie se rapprocherait de celle de la peine concrètement encourue.
4.1 L'incarcération est disproportionnée en cas de retard injustifié dans le cours de la procédure pénale (<ref-ruling> consid. 2.2 p. 151, 125 I 60 consid. 3d p. 64, 124 I 208 consid. 6 p. 215 et les arrêts cités). Toutefois, n'importe quel retard n'est pas suffisant pour justifier l'élargissement du prévenu. Il doit s'agir d'un manquement particulièrement grave, faisant au surplus apparaître que l'autorité de poursuite n'est plus en mesure de conduire la procédure à chef dans un délai raisonnable. En cas de retard de moindre gravité, des injonctions particulières peuvent être données, comme par exemple la fixation d'un délai de détention maximum; c'est au surplus au juge du fond qu'il appartient, le cas échéant par une réduction de peine, de tenir compte d'une violation de l'obligation de célérité (<ref-ruling> consid. 2.2 p. 151/152).
4.2 En l'espèce, les décisions judiciaires se sont succédées de manière certes relativement espacée, mais régulière, depuis le renvoi du recourant en jugement. Les débats principaux ont eu lieu dans les six mois; la Cour de cassation a ensuite été saisie d'un recours du Ministère public et de recours joints des différents condamnés; elle a également statué dans les six mois. L'accusé principal a formé un recours de droit public, déclaré irrecevable par arrêt du 11 octobre 2004. Le nouveau jugement est, selon les indications du Ministère public et de la cour cantonale, fixé aux 20 et 21 décembre 2004. Il n'existe par conséquent pas de retard manifeste et inexpliqué qui justifierait un élargissement du prévenu, voire même une injonction du Tribunal fédéral.
4.3 En vertu du principe de la proportionnalité, le prévenu doit être libéré lorsque la durée de son incarcération se rapproche de la peine privative de liberté qui sera éventuellement prononcée. Cette dernière doit être évaluée avec la plus grande prudence, car il faut éviter que le juge du fond ne soit incité à prononcer une peine excessive pour la faire coïncider avec la détention préventive à imputer (<ref-ruling> consid. 5a p. 176/177).
Le recourant insiste sur les arguments à décharge qui pourraient selon lui justifier le prononcé d'une peine inférieure ou égale à la détention préventive subie. Il perd toutefois de vue que ces arguments ont déjà été examinés par un juge appelé à statuer sur le fond, lequel a prononcé une peine de réclusion largement supérieure à deux ans et demi. La cause a par ailleurs été renvoyée à un Tribunal correctionnel élargi, en raison de l'impossibilité des premiers juges de prononcer une peine supérieure à cinq ans de réclusion, s'agissant en tout cas de l'accusé principal. Même si ces décisions ne sauraient lier les juges appelés à se prononcer à nouveau, il s'agit là d'indices sérieux permettant d'admettre que le principe de la proportionnalité n'est pas violé, et ne le sera pas non plus lors des débats principaux qui se tiendront au mois de décembre 2004.
Le recourant insiste sur les arguments à décharge qui pourraient selon lui justifier le prononcé d'une peine inférieure ou égale à la détention préventive subie. Il perd toutefois de vue que ces arguments ont déjà été examinés par un juge appelé à statuer sur le fond, lequel a prononcé une peine de réclusion largement supérieure à deux ans et demi. La cause a par ailleurs été renvoyée à un Tribunal correctionnel élargi, en raison de l'impossibilité des premiers juges de prononcer une peine supérieure à cinq ans de réclusion, s'agissant en tout cas de l'accusé principal. Même si ces décisions ne sauraient lier les juges appelés à se prononcer à nouveau, il s'agit là d'indices sérieux permettant d'admettre que le principe de la proportionnalité n'est pas violé, et ne le sera pas non plus lors des débats principaux qui se tiendront au mois de décembre 2004.
5. Le recours de droit public doit par conséquent être rejeté. Le recourant a demandé l'assistance judiciaire, et celle-ci peut être accordée. Me Claude Ramoni (aux côtés duquel agit également un avocat-stagiaire) est désigné comme avocat d'office, rétribué par la caisse du Tribunal fédéral. Il n'est pas perçu d'émolument judiciaire.

Par ces motifs, vu l'art. 36a OJ, le Tribunal fédéral prononce:
Par ces motifs, vu l'art. 36a OJ, le Tribunal fédéral prononce:
1. Le recours est rejeté.
1. Le recours est rejeté.
2. La demande d'assistance judiciaire est admise.
2. La demande d'assistance judiciaire est admise.
3. Me Claude Ramoni est désigné comme avocat d'office du recourant. Une indemnité de 1000 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral.
3. Me Claude Ramoni est désigné comme avocat d'office du recourant. Une indemnité de 1000 fr. lui est allouée à titre d'honoraires, à payer par la caisse du Tribunal fédéral.
4. Il n'est pas perçu d'émolument judiciaire.
4. Il n'est pas perçu d'émolument judiciaire.
5. Le présent arrêt est communiqué en copie aux mandataires du recourant, au Procureur général et au Tribunal cantonal du canton de Vaud.
Lausanne, le 16 novembre 2004
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le président: Le greffier: