Computer soll sich als USB Massenspeicher ausgeben

mercsen

Lt. Commander
Registriert
Apr. 2010
Beiträge
1.676
Hej liebe Leude!

Ich habe eine, sagen wir, ungewöhnliche Frage:

Ich benötige eine Weg wie sich mein Laptop mehreren Geräten gegenüber als USB Massenspeicher ausgeben kann, angeschlossen über USB.

Denn ich habe folgendes Szenario:

Wenn ich als DJ am Auflegen bin habe ich 2 bis 4 "echte" Player und ein Notebook mit 4 Decks + midi Controllern und Software am laufen.

Auf dem Notebook läuft Traktor und FL Studio und ist meine ganze Musik gespeichert (knapp 1 TB). Da ich aber leider kein Geld wachsen lassen kann habe ich relativ günstige Multimediaplayer, 2 mal nen Gemini MDJ 500 und von Reloop (die teile ich mir mit nem Kollegen).

Die Geminis haben jeweils einen eigenen USB Port und ich hätte gerne das ich beide mit meinem Notebook verbinde, die es als Massenspeicher erkennen und ich dort gemütlich meine Files durchsuchen kann, ohne sie extra auf nen Stick ziehen zu müssen. Es müssen aber beide gleichzeitig streamen können.
Ich habe eine externe Festplatte mit 2 TB, die kann ich da anschließen, aber dann muss ich 2 Libs pflegen, wenn ich für beide, oder gar alle 4 Player auch noch eine Platte kaufen müsste wäre mir das zu teuer und zu aufwendig.

Gibt es da nicht eine schöne Lösung für?

Das ist auch mehr eine Komfort Frage, wenn ich offiziell auflege brauche ich so eine Lösung nicht da ich ja nur ein bestimmtes Set spiele, aber zB zum erstellen eines neuen Sets, oder einfach zum Freestylen ist das ganz nett :)

Besten Dank für die Aufmerksamkeit :)
 
Das wird nicht klappen :)

Können die Geminis auf netzwerklaufwerke zugreifen?
 
Nein leider nicht, nur die nächst teurere Version. Die Kostet aber alleine so viel wie die beiden zusammen :-/

Wieso sollte das nicht klappen? Ich habe mich schonmal in die C# USB libs eingelesen, wenn man nen Proxy vorschaltet könnte das gehen, mir fehlt nur aktuell die Zeit so ein ding zu schreiben. AUßerdem ist das glaube ich ziemlich schwer und meine c# zeiten liegen weit zurück :D
 
Es gibt USB-Link-Kabel. Damit kann man 2 PCs oder einen PC und einen MAC verbinden. Ob deine Geräte damit umgehen können, weiß ich natürlich nicht.
 
  • Gefällt mir
Reaktionen: mercsen
Ja, die stehen dann beiden Rechnern als geteilem slave zur verfügung. Direkten zugriff auf die Musikbilbiothek gibt es trotzdem nicht
 
madmax2010 schrieb:
Ja, die stehen dann beiden Rechnern als geteilem slave zur verfügung. Direkten zugriff auf die Musikbilbiothek gibt es trotzdem nicht

dein link kann ich leider nicht öffnen.

D.h. dann mein Computer würde beide Geräte sehen, die Player den PC aber nicht?

Ich schrecke ja vor keiner Herausforderung zurück, aber ich habe meine letzten Jahre als Back-/ Frontend entwickler im Webbereich verbracht, glaube das wird ne weile dauern mich in das ganze Thema einzulesen.

Aber ich stelle mir das Programm wie folgt vor:

Ein Listener der die USB Ports überwacht, ein Player wird eingesteckt, der Listener sagt ihm das er ein USB Massenspeicher ist und sendet ne file list (gefiltert das nur die musik libs gezeigt werden).
Das Gleiche für Player 2.

Sobald die Player dann nen befehl senden fängt der Listener den ab, sucht meinetwegen die datei und streamt sie rüber, besser noch er kopiert und streamt sie dann.

Da so jeder Player nen "eigenen" Prozess hat der sich um die USB Aufräge kümmert und im Hintergrund ein anderer Prozess auf die Datein zu greift dürfte das doch kein Problem sein? Mit Multithreading kenne ich mich aus, zwar in Java aber das Prinzip sollte ja das gleiche sein.
Nur anscheinend sind die Java USB libs nicht ganz so ausgereift.
 
Also der Gemini MDJ 500 hat auf jeden Fall eine USB Buchse, somit könntest du diesen wahrscheinlich über eine DJ Software (Traktor, Serato, Mixx (Freeware!!) oder Virtual DJ) ansteueren, bei deinem nicht genannten Reloop weiß ich das nicht. Aber anders wäre eigentlich eine KlonStation die bei Knopfdruck den Inhalt von EingangsLW auf 1 bis 2 AusgangsLWs kopiert auch nicht falsch, sofern überhaupt wirklich so etwas existiert (nehme ich einfach mal an)
 
floert schrieb:
Also der Gemini MDJ 500 hat auf jeden Fall eine USB Buchse, somit könntest du diesen wahrscheinlich über eine DJ Software (Traktor, Serato, Mixx (Freeware!!) oder Virtual DJ) ansteueren, bei deinem nicht genannten Reloop weiß ich das nicht. Aber anders wäre eigentlich eine KlonStation die bei Knopfdruck den Inhalt von EingangsLW auf 1 bis 2 AusgangsLWs kopiert auch nicht falsch, sofern überhaupt wirklich so etwas existiert (nehme ich einfach mal an)

Yes man kann die als Midi Controller nutzen, aber keine Musik auf die Streamen. Für Traktor selber habe ich schon einen 4 Deck Controller, aber ich nutzte das ehr in Verbindung mit FL Studio mit dem Remix Decks.
Dann bräuchte ich die beiden Player halt auch nicht, habe genug Controller um Traktor mit 12 Decks zu betreiben :lol:
 
D
floert schrieb:
Dann würde ich nach einer CloneStation suchen die ohne PC einfach die Sticks klont, die wirst du ja hoffentlich nur einmal in der Woche brauchen.

Danke für deine Mühe :)
Aktuell gibts gar keine Auftritte und für meine Musik gibts in Kiel auch wenig Arbeit wenn ich die Partys nicht selber schmeiße ;D

Und dann präperiere ich mein Set ja sowieso im voraus und meistens wird man gezwungen mit Pioneer Playern zu arbeiten, da ist das nicht ganz so schlimm, man muss das halt eh durch rekordbox jagen dann.

Wenn ich mal die Zeit finde so ein Programm zu schreiben gebe ich laut :D
 
mercsen schrieb:
Wenn ich mal die Zeit finde so ein Programm zu schreiben gebe ich laut

Wirst du wahrscheinlich kein Glück haben. Zumindest nicht mit einem Windows Notebook. :)
Ohne jetzt die einzelnen Problemzonen genauer auszuführen (Windows interna, USB Controller muss mitspielen benötigt zusätzlichen Widerstand, nur ein Gerät pro realem Controllerport / kein USB Hub), gäbe es aber noch eine Möglichkeit.

Nimm 4 x RaspberryPi Zero.
Die können nativ als OTG Gerät genutzt werden. Anbindung ans Notebook dann per Netzwerk. WLAN oder USB Ethernet Adapter. Pi greift auf den freigegebenen Ordner zu und stellt deinen Playern die Musik per OTG zur Verfügung.
 
  • Gefällt mir
Reaktionen: mercsen
Also die Idee mit den Pis ist interessant.
Wollte mich eh schon lange mal damit auseinander setzten, liebäugle allerdings ehr mit den Adruinos.

Auch wenn das wohl ehr ins Programmierforum gehört:
Mein Plan sieht ja vor das ein Controller pro Port angeschlossen wird. Und dann klemm ich dort einfach nen Programm zwischen das die Abfragen verarbeitet. Für Windows soll es egal sein was da dran ist. Das Programm müsste halt nur über den Port senden das es ein Massenspeicher ist, ich hoffe nur das man dafür nicht an die Treiber muss :D
Dat teil verarbeitet dann alle anfragen wie "Schick mal nen directory listing", "Ich brauche Paket so und so von Datei xyz", sowas ähnlich durften wir damals in der Uni schreiben als es um TCP/IP und UDP ging.
 
mercsen schrieb:
Ich benötige eine Weg wie sich mein Laptop mehreren Geräten gegenüber als USB Massenspeicher ausgeben kann, angeschlossen über USB.
Da Notebooks nur USB Host Ports haben, dürfte es schwer werden, denn auch die Kabel um zwei zu verbinden die ich kennen, ermöglichen zwar Maus und Tastatur auf beiden Rechnern zu verwenden und über das Clipboard auch Dateien zu kopieren, aber die laufen nur mit eigenen Treibern und sowas wie eine Filefreigabe ist es bei weitem nicht. Viel Spaß bei der Suche nach einer Lösung.
 
mercsen schrieb:
Wollte mich eh schon lange mal damit auseinander setzten, liebäugle allerdings ehr mit den Adruinos.

Mit Arduinos wäre es auch möglich. Allerdings solltest du dann eher Richtung Teensy denken. Damit wäre die USB-Host Funktion möglich, das ist recht schnell gemacht. Da hast du dann die Arbeit mit der "anderen Seite", also der Schnittstelle zum Notebook.
Das heisst du müsstest mit zusätzlicher Hardware ein Netzwerkinterface per "SPI" anbinden, oder jeweils einen weiteren Teensy/Arduino per SPI verbinden, dessen USB Port dann mit einem eigenen Programm auf dem Notebook kommuniziert (im normalem Geräte-Mode, hier kein USB OTG notwendig).
Ansonsten hast du da nur Seriell und irgendwie bezweifel ich das du da vernünftig deine Audiodaten drüberbekommst ;)
Die üblichen "kleinen" Arduinos mit Atmega Chip haben nicht die passende Power die du benötigst.

mercsen schrieb:
Das Programm müsste halt nur über den Port senden das es ein Massenspeicher ist

USB Bitbanging über Windows? Kannste knicken :D Dafür brauchst du hardwarenahe Programmierung und die Zeiten sind leider lange vorbei, wenn man nicht Voodoo betreibt und ein paar Jungfrauen opfert. Und nicht vergessen, dein Notebook nutzt garantiert intern einen USB Hub. Dh du hast sowieso keinen Zugriff auf die "realen" Hardwareports.

Wenn du dich für Arduinos interessierst, würde ich das an deiner Stelle als ein eigenes Projekt angehen.
 
  • Gefällt mir
Reaktionen: Salierfähig
Zurück
Oben