Sachverhalt:
A. Die Staatsanwaltschaft des Kantons Schaffhausen erhob am 30. Juni 2008 beim Kantonsgericht Anklage gegen X._ wegen qualifizierter Widerhandlung gegen das Betäubungsmittelgesetz.
Am 2. Juli 2009 lud das Kantonsgericht des Kantons Schaffhausen X._ zur Hauptverhandlung vom 4. November 2009 vor; dabei wurde die Besetzung des Gerichts bekanntgegeben und vermerkt, dass die Hauptverhandlung zusammen mit derjenigen gegen Y._ stattfinden werde.
Am 27. Oktober 2009 stellte X._ Gesuch, ihn von der Teilnahme an der Hauptverhandlung zu dispensieren, da er krankheitsbedingt nicht verhandlungsfähig sei. Die Hauptverhandlung könne ohne seine Anwesenheit stattfinden; sein Verteidiger werde daran teilnehmen und ihn wirksam verteidigen.
Am 30. Oktober 2009 setzte das Kantonsgericht die Verhandlung gegen X._ ab.
Am 4. November 2009 führte das Kantonsgericht die Hauptverhandlung gegen Y._ durch.
B. Am 11. Februar 2010 stellte X._ gegen das Kantonsgericht ein Ablehnungsbegehren mit dem Antrag, den Prozess gegen ihn an ein auswärtiges Gericht zu überstellen.
Am 1. April 2010 trat der Präsident des Obergerichts des Kantons Schaffhausen auf das Ausstandsgesuch nicht ein.
Mit Beschwerde in Strafsachen beantragt X._, den Entscheid des Obergerichtspräsidenten aufzuheben und ihn einzuladen, auf das Ausstandsgesuch einzutreten und es materiell zu behandeln. Eventualiter sei ihm unentgeltliche Rechtspflege und Verbeiständung zu gewähren.
C. Ohne einen Antrag zu stellen weist der Obergerichtspräsident in seiner Vernehmlassung die gegen seinen Entscheid erhobenen Einwände zurück. Das Kantonsgericht beantragt, die Beschwerde abzuweisen. X._ hält in seiner Replik an der Beschwerde fest.
In ihren Dupliken, die dem Beschwerdeführer am 26. Mai 2010 zugestellt worden sind, halten der Obergerichtspräsident und das Kantonsgericht an ihren Standpunkten fest.
Erwägungen:
1. Der angefochtene Entscheid schliesst das Strafverfahren gegen den Beschwerdeführer nicht ab, er ermöglicht vielmehr dessen Weiterführung. Es handelt sich um einen selbstständig eröffneten, kantonal letztinstanzlichen Zwischenentscheid über ein Ausstandsbegehren, gegen den die Beschwerde in Strafsachen nach Art. 92 Abs. 1 BGG zulässig ist. Als Angeklagter ist der Beschwerdeführer zur Beschwerde berechtigt (Art. 81 Abs. 1 lit. a und b BGG). Die übrigen Sachurteilsvoraussetzungen geben zu keinen Bemerkungen Anlass, weshalb auf die Beschwerde einzutreten ist.
2. Der Obergerichtspräsident hat in seinem angefochtenen Nichteintretensentscheid erwogen, nach Art. 340 Abs. 1 StGB seien für die Beurteilung einer strafbaren Handlung die Behörden des Tatortes zuständig, womit die Wahl eines ausserkantonalen Gerichtsstands von Bundesrechts wegen ausgeschlossen sei. Nach dem Wortlaut der einschlägigen Bestimmungen der Schaffhauser Strafprozessordnung vom 15. Dezember 1986 (StPO) könnten zudem Ausstandsgründe lediglich gegen einzelne Justizpersonen geltend gemacht werden, nicht gegen das Kantonsgericht als Institution.
Das III. Kapitel der StPO regelt den "Ausstand der Justizpersonen". Aus den Art. 25 ff. ergibt sich, was der Beschwerdeführer zu Recht nicht bestreitet, dass sich Ausstands- bzw. Ablehnungsbegehren gegen bestimmte Justizpersonen richten müssen. Das heisst zwar nicht, dass ein Ausstandsgrund nicht ausnahmsweise alle Mitglieder und Gerichtsschreiber eines Gerichts betreffen könnte. Dies machte der Beschwerdeführer in seinem Ausstandsbegehren vom 11. Februar 2010 indessen nicht geltend. Er führt dort ausschliesslich aus, das "Gericht" sei durch die Verurteilung von Y._ befangen, weshalb sein eigener Fall durch ein "auswärtiges Gericht" beurteilt werden müsse. Unter diesen Umständen handelte der Obergerichtspräsident weder überspitzt formalistisch noch sonst wie bundesrechtswidrig, indem er davon ausging, das (vom Rechtsvertreter des Beschwerdeführers verfasste) Ausstandsbegehren richte sich entsprechend seinem klaren Wortlaut gegen das Kantonsgericht als solches, nicht gegen die einzelnen Gerichtsmitglieder, und sei damit unzulässig.
Der Nichteintretensentscheid ist im Übrigen im Ergebnis auch aus einem anderen Grund nicht zu beanstanden. Der Rechtsvertreter des Beschwerdeführers nahm an der Hauptverhandlung gegen Y._ vom 4. November 2009 als Zuschauer teil und macht geltend, die Befangenheit des Kantonsgerichts ergebe sich aus dem Inhalt der mündlichen Urteilsbegründung. Da Ausstandsbegehren nach Treu und Glauben unverzüglich nach Kenntnisnahme des Ausstandsgrundes zu stellen sind (BGE 134 I 20 E. 4.3.1; 132 II 485 E. 4.3; 124 I 121 E. 2), war das am 11. Februar 2010, mithin gut drei Monate später eingereichte Ausstandsbegehren ohnehin verspätet.
3. Die Beschwerde ist somit unbegründet und abzuweisen. Damit trägt der Beschwerdeführer die Gerichtskosten (Art. 66 Abs. 1 BGG). Er hat zwar ein Gesuch um unentgeltliche Rechtspflege gestellt, welches indessen abzuweisen ist, da die Beschwerde aussichtslos war (Art. 64 Abs. 1 BGG).
Demnach erkennt das Bundesgericht:
1. Die Beschwerde wird abgewiesen.
2. 2.1 Das Gesuch um unentgeltliche Rechtspflege und Verbeiständung wird abgewiesen.
2.2 Die Gerichtskosten von Fr. 1'000.-- werden dem Beschwerdeführer auferlegt.
3. Dieses Urteil wird dem Beschwerdeführer sowie dem Kantonsgericht und dem Obergericht des Kantons Schaffhausen, Präsident, schriftlich mitgeteilt.
Lausanne, 7. Juni 2010
Im Namen der I. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Der Gerichtsschreiber:
Féraud Störi