PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "Intelligente" Tastenabfrage



Movie85
30.12.2010, 00:16
Hi Leuts,

ich bin im Moment dabei mir ein Midi Controll Board zu "basteln". Dabei geht es um ein Board mit ca. 5 oder mehr Fußschalter, mit denen ich verschiedene Effekte für meinen Gitarrenverstärker umschalten will. Angesteuert wird ein Alesis Quadraverb(falls es jemanden interessiert:P), über MIDI.
Die verschiedenen Fußschalter haben bestimmte Funktionen, z.B. soll einer einen Hall zum Effekt dazufügen, ein anderer soll einen Chorus hinzufügen etc.

Nun ist es aber so, dass ich im Effektgerät selber nicht einfach z.B. einen Hall zum aktuellen effekt hinzufügen kann... Das ist voreingestellt. Da hab ich mir gedacht, ich erstell einfach viele "Presets" im Effektgerät, mit allen möglichen Kombinationen von Effekten. Diese haben dann bestimmte Nummern die ich per MIDI-Programm Change am Effektgerät einstellen kann. Mein Prozessor muss halt anhand der Fußtaster Kombi erkennen, welcher Effekt eingestellt werden muss.

Ich dachte mir dass ich eine art Tabelle abspeichere, die die bestimmten Effektkombinationen gespeichert hat. Die Frage ist nur: Wie mach ich die Tastenabfrage und die Effektwahl am sinnvollsten? Hat jemand vielleicht eine ähnliche Abfrage gemacht? Ich würde da jetzt eine riesige If verkettung machen, aber es gibt doch sicher noch einen stilvolleren Weg, oder?

Vielen Dank für Anregungen,

Tom

PICture
30.12.2010, 00:53
Hallo Movie85!

Was am sinnvollsten für dich ist, kannst du leider nur selber entscheiden ... :)

Da du das angeblich softwaremässig mit einem µC realisieren willst, am einfachsten für mich wäre: jeden Taster mit pullup (internen bzw. externen), der auf Masse (GND) schaltet, als ein Bit einlesen und aufgrund den "L" Bits alle gedrückte Taster gleichzeitig zu erkennen.

Es geht wirklich gleichzeitig nur für 8 Taster durch ein Port. Um die gedrückte Taster laufend zu prüfen, muss es je nach Bedarf genug oft wiederholt werden.

Übrigens, als PIC ASMan, kann ich dir bei AVR's softwaremässig leider nicht helfen.

MfG

Movie85
30.12.2010, 10:05
Hallo PICture,

danke für deine Antwort :) Danke für den Tipp mit den Tastern, ich benutze aber Schalter, soll ich da trozdem mit PullUps arbeiten, und sollte ich sie entprellen? Ein Problem ist vielleicht noch, dass die Schalter nicht unbeding alle auf "Off" Stellung am anfang sind, ich wollte deshalb erst eine Art "Reset" machen, dass der Software sagt, das immoment alle Schalter inaktiv sind(auch wenn sie nicht wirklich alle aus sind)

Gruß,,

Tom

PicNick
30.12.2010, 11:51
Is es nicht vielleicht besser, die Quadravereinstellung über SYSEX reinzuladen ?
da kannst du gezielt die einzelnen Parameter setzen

Vitis
30.12.2010, 11:53
entprellen, unbedingt, kann auch in Software gemacht werden, kein Problem.
Ein LCD würde ich dazu empfehlen, ggf. an ner Verlängerung, damit du den Status der Schalter auch "im Blick" hast.
Wie die Schalter wann ausgelesen werden kannst Du in Deiner Software nach Belieben festlegen.

Movie85
30.12.2010, 12:28
Hallo :)

@ PicNick: Über SysEx hab ich schonmal was gelesen, hab aber keine Ahnung wie man damit den Quadraverb ansteuert... Ich werd mal ein bisschen im Internet forsten. Heißt dass, das man damit direkt voreingestellte effekte an das Gerät übertragen kann? Hast du sowas schonmal gemacht?

@Vitis: Danke, dann mach ich das. Ich denke per Hardware also nem Kondensator wärs am schlausten? Weil das debouncen ja etwas Zeit in Anspruch nimmt und Probleme verursachen kann... Die Idee mit dem LCD hat ich auch, ich weiß nur nicht ob sich das lohnt, wenn das Gerät am Boden steht dass kann ich die kleine Schrift sowieso nicht lesen :D Zum einstellen wärs vielleicht ne Idee, aber fürs erste wollt ich alles per Code Programmieren und später vielleicht noch ein EDIT Menü als LCD reinfatschen :) Welche Effekte aktiv sind soll einfach mit LEDs über den Schaltern angezeigt werden:)

Gruß,

Tom

PICture
30.12.2010, 15:18
Hallo!

Die pullups sind nötig um immer eindeutige Pegel ("L" bzw. "H") an allen Eingängen des µC's zu haben. Das einfachstes Entprellen ist zweimal mit Zeitabstand einlesen und falls gleich das annehmen. Ein Reset finde ich überflussig, da du immer aktuellen Stand den Schalter hast und kannst beliebig im "intelligenten" Programm daran reagieren.

Übrigens, in meiner "Spielzeit" vor zig Jahren hat unser solo-Gitarist die Rolle von µC erfüllen müssen und alle gewünschte Effekte per Fuss immer biliebig einzeln aktivieren, um alles genau wie er wollte spielen zu können. Bei Improvisationen könnte ich mir festprogrammierte Effekte kaum vorstellen. :)

MfG

Movie85
30.12.2010, 15:53
Danke für die Erklärung PICture ;)

Jaja, früher waren wir alle noch nicht faul :D Aber bei mir ist es ja genauso, vielleicht hast du das falsch verstanden: Ich muss die Effekte ja auch alle einzeln aktivieren. Das Problem ist nur das Effektgerät, das nicht gleichzeitig mehrere Effekte aktivieren kann... Ich wäre auch mit 4 verschiedenen Pedalen zufrieden, um Reverb, Delay etc. einzustellen, ich hab aber nunmal mein Effektgerät und muss bzw. will mir die Arbeit machen, das ganze so zu realisieren wie ich mir das vorstellen :) Ich mach mir damit das Leben ja nicht einfacher, ich machs nur etwas kreativer :))

Gruß

PicNick
30.12.2010, 16:04
Über SYSEX kann man die Programme vom Quadra entladen und auch wieder laden.
Ich selbst verwende sowas nicht vom µC aus, sondern vom PC.

Es gibt Doku:
http://www.synthzone.com/midi/alesis/qv/qv-sysex.html

PICture
30.12.2010, 16:07
@ Movie85

Naja, ich bin schon lange nicht am Laufendem. Wenn du ein komplexes Effektgerät mit MIDI hast, dann musst du es leider so steuern, wie es haben will. ;)

Damals waren alle Effekte in bestimmter Reihenfolge nacheinander zwischen Gitarre und Verstärker geschaltet und konnten als beliebige Kombination gleichzeitig benutzt werden (z.B. "fuzz" + "phasing" + "wow-wow" + "echo", usw.).

MfG

PicNick
30.12.2010, 16:33
:mrgreen: PICture, wenn ich denke, dass das Quadraverb auch schon über 20 Jahre alt ist, musst du ja noch mit den "Comedian Harmonists" gegeigt haben :mrgreen:

In so einer Kiste sind die Effekte alle zusammen eingebaut, die Konfiguration etc. kann man frei zusammenstellen.
Aber einstellen eben einzeln mit ENTER, ESC und Data.
d.h. für Live ist das ein Brimsen.

deswegen verwenden ja die meisten immer noch so eine riesige pedalerie, wo sie willenlos drauf herum-steppen können (müssen).

Mir ist auch ein Mischpult mit phsyischen Knöpfen lieber als mit der Maus an Cyber-Räder drumzudrehen :-)

Movie85
30.12.2010, 16:36
@ PICture

So läufts, immer diese Standartisierungen :D Ach und ich glaube du meinst Wah-Wah, nicht wow-wow, oder? ;)

@PicNick

Danke für den Link, hab ich auch per Google gefunden, da muss ich mich wohl oder übel reinlesen... ;) Was benutzt du für ein Programm? Ein spezielles fürs Quadra oder einen "Midi-Sender"?

MfG

PICture
30.12.2010, 16:46
@ PickNick

Das kannst du dir gar nicht vorstellen können, dass ich als ca. 14-jähriges Kind noch ohne Verstärker angefangen habe, weil mir das Trommeln selbst riesiegen Spass gemacht hat. :lol:

@ Movie85

Natürlich habe ich "Wah-Wah" gemeint, bloss die richtige Schreibweise schon vergessen ... :)

MfG

Movie85
30.12.2010, 16:55
Naja manchmal könnt man auch meinen es wär ein Wow-Wow Effekt :D

Dann setzt ich mich mal an die Hardware... Muss aufpassen dass es nicht zu schwer wird...

PicNick
30.12.2010, 17:13
Ja, das kann ich mir vorstellen.
Ich hab den Radio vom Vatern geborgt und am Phono Eingang (Bananenstecker) ein Tonband-Mikrophon angesteckt, das wiederum mit Tesafilm am Korpus einer Wandergitarre geklebt war.
Schlagzeig war ein im Zentrum aufgehängter metallener ServierTeller als Ride und ein Tamburin als Snare. Kick war eine Waschmittel-Trommel. mit dem Fuss direkt zu betätigen.
Vorteil: Mit sowas konnte man noch im Wohnzimmer proben *hehe*

PICture
30.12.2010, 17:40
@ Movie85

Mit der Hardware hoffe ich, dass ich dir bei konkreten Problemen (z.B. Schaltplänen) helfen könnte ... :)

Es wäre vortellhaft, wenn ich auch etwas hören könnte (z.B. als MP3) ...

Bei der Musik "live is life" und ich weiss nicht, ob die modernste Effektgeräte schon das Zupfen von Gitarrenseiten mit Zähnen, wie Jimmy Hendrix, schon erzeugen können ... ;)

@ PickNick

Radios sind später gekommen, haben sich mit der Zeit zum Verstärker mit ein paar hundert W pro Instrument entwickelt und ohne, hätte man mich nicht mehr hören können (z.B. bei "open-air" Konzert) ... :)

MfG

Movie85
05.01.2011, 22:19
So, jetzt kann ich mich weiter mit meinem Projekt beschäftigen :)

Sorry PICture, deinen letzten Satz versteh ich nicht ganz :D
Hardware mäßig müsste alles soweit klar sein, ich meld mich wenns was gibt, danke ;)

Aber noch ein kleines Code problem:
Ich würde jetzt alle 8 Schalter auf PortD legen, und dann per select case in Bascom jeweils die passende Effektnummer zuordnen.
So ca.:

case &B00000010:
Send Programm 2
case &B00000011:
Send Programm 3 etc.

da ich keinen Midi overflow will soll das die abfrage nur geschehen, wenn sich bei den Schaltern wirklich was ändert. Dafür mach ich vor der select case abfrage eine Variable, die den aktuellen Port zustand speichert, und immer wieder vergleicht, ob sich was verändert, wenn ja wird die select case methode aufgerufen.... Jo, damit beantworte ich mir die Frage fast schon selbst, mal sehen obs klappt ^^

Gruß

PICture
05.01.2011, 22:37
Hallo!


Sorry PICture, deinen letzten Satz versteh ich nicht ganz :D

Dann vergiss es, bitte, weil unwichtig ist.

Soweit ich mir noch BASIC erinnern kann, sollte es mit deinem Software klappen (über BASCOM habe ich k.A.). :)

MfG