Tastatur als Controller?

  • Ersteller stunningpotato
  • Erstellt am
S
stunningpotato
Registrierter Benutzer
Zuletzt hier
29.11.15
Registriert
15.11.15
Beiträge
3
Kekse
0
Hey, Leute!

ich hatte vor, mir mit der Open Source - Software Sooperlooper (http://essej.net/sooperlooper/) und einem Rechner eine Loopmaschine zu bauen - weil mein Budget ziemlich klein ist, hab ich nicht wirklich Lust, mir eine fertige Lösung zu kaufen, sondern hoffe, dass ich mit einem Rechner, den ich noch rumstehen habe und mit dieser Software gut über die Runden komme.

Mein Plan war, das ganze mit mehreren USB-Keypads zu steuern (zum Beispiel sowas: http://r.ebay.com/g4ZxTP), weil die relativ günstig zu haben sind und viele Tasten auf kleinem Raum anbieten. Was sind die Haptik und die Latenz okay? Die meisten Keypads können zwei oder drei Tasten gleichzeitig registrieren. Was die Software angeht, Sooperlooper hat ein OSC-Interface und mit ein bisschen Python sollte es möglich sein, die Keypads seperat anzusprechen und über dieses Interface das Programm zu steuern.

Danke schonmal!
 
Eigenschaft
 
Ich würde vorschlagen, du benutzt eine Game-Library, wie z.B. pygame, pyglet oder cocos2d zur Abfrage der Tastatur. Zum Senden von OSC-Nachrichten
pyliblo.

Falls du doch einmal mit MIDI-Controllern arbeiten willst, schau dir mal meine Python MIDI-Bibliothek an:

https://github.com/SpotlightKid/python-rtmidi

Zusammen mit pyliblo ist es relativ einfach, eine MIDI-to-OSC-Bridge zu bauen. Für die Gegenrichtung gibt es in der python-rtmidi-Distribution auch ein ausführliches Beispiel (unter examples/osc2midi).
 
Zuletzt bearbeitet:
Folgendes war mein Plan: mit der Python-Library evdev kann ich unter Linux jedes Numpad einzeln auslesen, mit PyOSC über das OSC-Interface kommunizieren. Mir ging es eher darum, ob ihr meint, dass man darüber überhaupt gut loopen kann, zum Beispiel, weil diese Keyboards das Signal nicht in Realtime ausgeben, oder weil die Haptik nicht gut genug ist, verglichen mit einer gekauften Lösung. Trotzdem danke für den Tipp!
 
mit der Python-Library evdev kann ich unter Linux jedes Numpad einzeln auslesen,

Das geht natürlich auch. Auf meinem System (Arch) muss der Benutzer allerdings Mitglied der Gruppe "input" sein, um auf die Devices unter /dev/input zugreifen und evdev nutzen zu können. Oder man muss Python mit sudo starten (nicht empfohlen).

mit PyOSC über das OSC-Interface kommunizieren

PyOSC geht natürlich auch, hat den Vorteil, dass es pures Python ist, also nichts kompiliert werden muss. Die Qualität des Codes ist so, naja. Mir persönlich gefällt pyliblo besser, aber das ist sicher Geschmackssache.

Latenz würde ich keine befürchten, die Abfrage der Tastatur wird vom Input-System des Kernels ziemlich hoch priorisiert. Wenn ich das richtig sehe, muss man in python-evdev die Keyboardevents in einer Schleife abfragen. Damit das nicht die ganze CPU auslastet, sollte man in die Schleife ein kleines time.sleep() einfügen, aber natürlich nicht zu lange, damit Keyboardevents zügig behandelt werden. Also z.B. ein Interval von 1ms.

Update: evdev bietet wohl den read_loop() Generator, also muss kein eigenes Polling machen. Damit ist die obige Bemerkung bzw. sleep hinfällig.

Ein kleines Problem könnte sein, dass bauartbedingt bei solchen Tastaturen nur begrenzt viele gleichzeitige Tastendrücke erkannt werden können. Wie viele das sind und welche Tastenkombis funktionieren und welche nicht, musst du ausprobieren. Ob das ein Problem ist, hängt von deiner genauen Nutzungsweise ab.
 
Zuletzt bearbeitet:
Auf meinem System (Arch) muss der Benutzer allerdings Mitglied der Gruppe "input" sein.

Cool, noch ein Arch-User! Ich weiß - hab ich schon ausprobiert ^^

PyOSC geht natürlich auch, hat den Vorteil, dass es pures Python ist, also nichts kompiliert werden muss. Die Qualität des Codes ist so, naja. Mir persönlich gefällt pyliblo besser, aber das ist sicher Geschmackssache.

Danke für den Tipp, ich probier mal beide aus.

Latenz würde ich keine befürchten, die Abfrage der Tastatur wird vom Input-System des Kernels ziemlich hoch priorisiert.

Okay... Das wusste ich noch nicht ^^

Ein kleines Problem könnte sein, dass bauartbedingt bei solchen Tastaturen nur begrenzt viele gleichzeitige Tastendrücke erkannt werden können. Wie viele das sind und welche Tastenkombis funktionieren und welche nicht, musst du ausprobieren. Ob das ein Problem ist, hängt von deiner genauen Nutzungsweise ab.

Ich weiß, aber ich denke, dass jede Tastatur mindestens drei Tasten gleichzeitig nutzen kann, (Ctrl-Alt-Entf etc.) und dann sollte es bei Nummernblöcken ja nicht anders sein, oder? Ich werds auf jeden Fall ausprobieren.

Ich bin im Moment im Ausland, und erst wieder in zwei Monaten zu Hause, deshalb werd ich mich jetzt erstmal darauf beschränken, den Python-Code fertig zu machen, und ein bisschen mit verschiedenen Tastaturen zu experimentieren.
 
ich denke, dass jede Tastatur mindestens drei Tasten gleichzeitig nutzen kann, (Ctrl-Alt-Entf etc.) und dann sollte es bei Nummernblöcken ja nicht anders sein, oder?

Nein, das ist bei jedem Tastaturtyp anders und bestimmte Tastenkombinationen gehen, andere nicht. Das hat mit der Abfrage der Tasten über eine Matrix zu tun.
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben