Auf USB-Geräte zugreifen mit Delphi (und in MIDI-Daten umwandeln)

I

iGoA

Registriert
23.01.06
Beiträge
891
Reaktionen
3
Punkte
931
Mal ne Frage:
Angenommen ich habe ein USB-Gerät, von dem ich nicht weiß, wie es mit dem Bestriebssystem kommuniziert. Wie kann ich nun mit einem Delphi-Programm auf dieses Gerät zugreifen? Wie kann ich lesen, was dieses Gerät überhaupt für Daten sendet?
 
ups, ich glaube dafür wechselst du mal in ein delphi-forum. ich kann zwar auch schöne sachen mit delphi zaubern, aber so tief ins system bin ich nicht vorgedrungen....tut mir leid ^^
 
Hatte ich mir jetzt auch schon überlegt. Aber danke für die Antwort.
 
Ich habe da mal vor einiger Zeit einen Programmkern geschrieben. USB-Geraet hat ja nix zu sagen, der Treiber zum USB-Geraet setzt es ja trotzdem auf das Standard-[g=32]Midi[/g]-Interface um.

Schau Dir die Dokumentation zu mmsystem.dll an...
 
Wobei ich komischerweise öfters Timingprobleme hatte, wenn ich mit der mmsystem.dll gearbeitet habe. Letztendlich hab ich dann 'ne [g=32]MIDI[/g]-Komponente (Freeware, TMIDIControl hieß das Viech) verwendet, die Events senden und empfangen konnte. Damit ging das dann perfekt. Es war sogar eine Sampler-Routine drin, damit konnt man nen SF2-File einlesen und so Noten direkt als Wavedaten ausgeben... :) Aber ich schweife ab.
Ich würd raten dir mal ein paar Komponenten reinzuziehen (torry.net).

Gruß
Lukas
 
Für [g=32]Midi[/g] gibts Systemaufrufe da spielt es keine Rolle was für eine Anschlussart dahinter steckt. Hatte vor langer Zeit mal einen [g=32]Midi[/g]-Kernel allerdings in C geschrieben. Mit Delphi wirst du auch ganz normal auf die Multimedia-APi zugreifen müssen, das entsprechende Device öffnen und dann davon in einer Schleife auslesen. Das ist alles recht gut dokumentiert und wenn man tiefer in die Materie einsteigen will (möglicherweise auch Teile in Assembler schreiben will) kenne ich da noch ein Buch "Musik Programmierung" aus dem AddisonWesley Verlag.

Windows listet die Geräte eigentlich nur nach Funktionsart zusammen und alle Geräte die sich als "kann [g=32]Midi[/g]" reagistriert haben werden bei der Aufzählungsfunktion gelistet. Möglicherweise liefert die Struktur auch weitere Informationen über die Hardware sodass es möglich wäre herauszubekommen was ein USB-Gerät... Aber normalerweise baut man sich damit ein Listenfeld wo der Benutzer dann das Gerät auswählen muss was benutzt werden soll...
 
Ich würd raten dir mal ein paar Komponenten reinzuziehen (torry.net).

Als ich das in Delphi (3 ???) programmiert habe, gabs dafür noch keine Komponenten, da mußte man direkt auf die mmsystem aufsetzen oder die Hardware direkt ansprechen.

Bei Linux war´s noch kritischer.

Aber diese "modernen" PCs machen es einem doch vergleichsweise leicht. Meine [g=32]Midi[/g]-Startzeit in der Ostzone war zu Zeiten des Atari XE130 (Schwarzmarkt) und einem Robotron Z9001 (CPU U880 = Z80-clone). Für beides mußte man sich erstmal die Hardware löten.

Assembler läßt grüßen...

Wie schön war der Augenblick, als man in Deutschland einen ST mit integrierter [g=32]Midi[/g]-Schnittstelle kaufen konnte. Und den dazugehörigen Steinberg Sequenzer konnte man auch einfach bestellen. Ich kam mir richtig veräppelt vor...

Aber ich schweife ab.
Na, schweif ruhig. Man erfährt immer mal was neues. Ich bin auch schon längst nicht mehr beim Thema, merke ich gerade.

EDIT: Habe auf torry.net gesucht. TMidicontrol gibts da nicht. Hier ist alles, was er unter [g=32]MIDI[/g] findet: Suche
 
Ich danke Euch für die ausführlichen Antworten, aber
wer hat denn gesagt, daß ich ein [g=32]MIDI[/g]-Gerät ansprechen möchte? ;)

Ich wollte es ganz allgemein wissen, da ich keine Ahnung habe, als was mein Betriebssystem dieses Gerät überhaupt einordnen würde. Könnte bei den Gamecontrollern laufen oder als Tastatur oder sonstwas. Es geht konkret um so ne Tanzmatte: http://cgi.ebay.de/2-TECH-USB-2-0-T...451QQihZ017QQcategoryZ170QQrdZ1QQcmdZViewItem

Von dem Gerät weiß ich nur, daß man keinen speziellen Treiber braucht. Also wie würde ich vorgehen, wenn ich auf das Treten der Matte mit Delphi (5) reagieren wollte?
 
Von dem Gerät weiß ich nur, daß man keinen speziellen Treiber braucht. Also wie würde ich vorgehen, wenn ich auf das Treten der Matte mit Delphi (5) reagieren wollte?

Das Dingen ist eine Tastatur, vermutlich der Nummernblock.
Einfach Notepad oeffnen und dancen.

456823154789652584698 ;)

Gruesse
Andre
 
Ohne Flachs? Is ja ne geile Sache dann!

Nächste Woche kommt das Teil nämlich an! Juhuuu!
 
Ich wollte es ganz allgemein wissen, da ich keine Ahnung habe, als was mein Betriebssystem dieses Gerät überhaupt einordnen würde.

Wo stand das in der Frage ganz oben ? Na egal. Als Element der Gruppe Audio- Video und Gamecontroller normalerweise. Zumindest ist das so, wenn sich der Programmierer des Treibers "was dabei denkt".

Könnte bei den Gamecontrollern laufen oder als Tastatur oder sonstwas.

Ja genau, ich kann Dir auch einen Treiber schreiben der das Ding bei den Druckern einordnet :D

Also wie würde ich vorgehen, wenn ich auf das Treten der Matte mit Delphi (5) reagieren wollte?

Du widersprichst Dir mit Deinen Fragen und Aussagen selbst. Entweder willst Du es ganz allgemein wissen oder wie Du eine Software dazu schreiben müßtest...

Ich wollte es ganz allgemein wissen,

...dann kriegst Du ne ganz allgemeine Antwort: Indem Du die Mididaten, die Deine "Matte" beim drauflatschen absondert, ausliest.

Ich geb Dir einen Tipp: Zieh Dir irgendwoher [g=32]Midi[/g]-OX runter und arbeite damit. Ist ein sehr schöner [g=32]Midi[/g]-Datenmonitor. Benutze ich auch ab und zu mal.

EDIT: Jetzt habe ich mir dieses Dingens bei Ebay doch mal angeguckt. Warum nimmst Du nicht die Software, auf die verwiesen wird ? "Voll kompatibel zur Tanzmatten-Freeware Software Stepmania". Außerdem steht da nicht, daß man keinen Treiber braucht, sondern daß man unter Windows XP keinen Treiber braucht. Weiterhin vermisse ich den Hinweis, daß dieses Dingens überhaupt [g=32]MIDI[/g]-Daten sendet. Vielleicht ist der o.g. Gag mit der Tastatur gar nicht so verkehrt. Die haben am Ende wirklich nur ein paar Kontakte drin und installieren das als USB-Tastatur. In dem Fall kannst Du es einfach vergessen.

Ich hatte geglaubt, Du hast eine Gummimatte, die je nach Trittstelle und Trittstärke entsprechende [g=32]Midi[/g]-Daten über USB senden kann.
 
Vielleicht ist der o.g. Gag mit der Tastatur gar nicht so verkehrt

Das war kein Gag :D. Das Dingen ist ein Game Controler (nur Buttons) oder
eine Tastatur. Nix mit [g=32]MIDI[/g].


Configure Keyboard and Dance Pads

If you use a dance pad, you will need to assign all the buttons of your dance pad to functions in StepMania. Start at the top row and assign keys to the Left, Right, Up, Down, Back, and Start

Gruesse
Andre
 
Nachdem ich mir das Ding angeguckt habe, nehme ich das gleiche an....

Was koennte man damit steuern ? Word ? Excel ? :D

...und ich habe geglaubt, das Ding ist ne affengeile Strickmaschine... dabei ist es ein.... Spielzeug. :x

Vielleicht kann man daraus trotzdem einen Midicontroller (oder -instrument) basteln. Man muss nur ein kleines Programm schreiben, was bei jedem Tritt entweder controllermessages oder noteon /noteoffs sendet. Die Parameter fuer jeden Fuss kann man dann in der Software frei programmieren und die Tastaturwerte zuweisen. Eine Art Triola fuer die Fuesse. Man koennte damit Pferde oder Elefanten testen, ob sie musikalisch sind.

Kannste der Tiernanny auf RTL verkaufen.
 
@soundscpae:
Joa, hab mich wohl ziemlich bekloppt ausgedrückt. Also ich möchte dann doch keine allgemeine Info sondern eine konkrete: Wie kann ich Beim Treten der Matte [g=32]MIDI[/g]-Noten an meinen [g=70]Sequencer[/g] schicken?

Dabei war mir schon klar, daß die Matte an sich nichts mit [g=32]MIDI[/g] zu tun hat und auch ganz sicher keine [g=32]MIDI[/g]-Daten liefert. Hatte deshalb gehofft, mit einem kleinen Delphi-Programm die Matten-Daten zu empfangen und entsprechende [g=32]MIDI[/g]-Daten an den Sequencer zu schicken (per [g=32]MIDI[/g]-Yoke [[g=32]MIDI[/g]-OX kenn ich auch. is geil!])

Wenn der Hinweis mit der Tastaturfunktinalität stimmt, dann wird das Programm ja einfach. Beim Gamecontroller schon etwas schwieriger, aber auch lösbar.

Ich denke, ich warte jetzt erstmal ab, bis der Lumpen bei mir angekommen ist und teste das Dingen dann durch.

Vielen Dank schonmal bis hierhin!
 
Ich denke, falls das Ding als Tastatur kommt, wirds wirklich einfach.
 
Das Päkchen ist gestern angekommen. Nach dem Anschließen erscheint das Gerät als Gamecontroller (haha, hatte eben ausversehen GEMAcontroller getippt, hehe). Habs auch schon mit einem Spiel getestet und das Spiel reagiert korrekt auf die Tritte. Klar. Nun muss ich nur mal sehen, ob es entweder ein Tool zur Umwandlung gibt (habe mal ein Tool gesehen, daß Analog-Joystick-Signale in [g=32]MIDI[/g]-Controller-Daten umwandelt) oder ob ich selber rumproggeln muss.
 
So!

Ich habe es geschafft!

Ich benutze jetzt Livesticks:

http://trip.m78.com/livesticks-e.html

Ist zwar ne Bezahlsoftware (was halt bißchen doof ist, weil ich die nur genau einmal live einsetzen werde), aber macht alles was ich brauche. Sogar ultraflexibel und somit für alle möglichen Gamecontroller (z.B. komplexe Gamepads) brauchbar. Also allgemein interessant.
 
...erklärst Du uns auch, was Du damit eigentlich machst bzw. vorhast ??
 
Jo, ich hab demnächst nen Gig als Liveact auf ne Hardcore-Techno-Party und um da ein bißchen Spass in die Sache zu bringen, wollte ich einen Teil des Sets mit der Tanzmatte gestalten, indem ich ein paar "Freiwillige" zu mir hole und diese bitte, bestimmte Felder im richtigen [g=253]Takt[/g] zu betreten. Also einer muss gleichmäßig auf das Bassdrum-Feld hüpfen, ein anderer jedes zweite Mal auf das Clap-Feld, einer im Offbeat auf das Hihat-Feld usw. Ich kommandiere dann alle rum. Ich schätze, daß durch das rythmische Unvermögen der durchschnittlichen Partgäste eine herrlicher Klangsalat rauskommt und wir uns hoffentlich scheckig lachen! ("Schnellaaaa! Schnellaaaaa!")
 

Oft gelesene Themen

Zurück
Oben