Velocity/Aftertouch per Fader?

fanwander

fanwander

************************
Ich würde mir gerne ein paar Parameter am TX7 in Echtzeit steuern. Dazu geb ich den Parametern Aftertouch oder Velocity als Modulationsquelle.
Jetzt hätte ich am liebsten ein Kistchen mit MIDI-In und MIDI-Out, das zwei Regler draufhat. Mit dem einen Regler gebe ich Aftertouchwert aus, mit dem anderen Regler stelle die fixe Velocity-Werte für die durchlaufenden MIDI-Noten ein. Gibts sowas? Irgendwelche Ideen, wie ich sowas relativ aufwandsfrei aus anderen Komponenten zusammenkriegen könnte?
 
Hast du einen Midi Solutions Event Processor zur Hand?
Ich könnte mir vorstellen, dass das damit geht. Bin aber noch nicht ganz sicher. Das hängt davon ab, ob der Processor Variablen speichern kann (man müsste schließlich die Faderpositionen in Variablen speichern um dann in den Note-On Events die Velocity zu ersetzen).

Bei interesse kann ichs ausprobieren.
 
Ich seh grad: Der event Processor hat nen Speicher für 8 Variablen! Ergo -> Geht!
Neben dem Event Processor brauchst du natürlich noch irgend ein Kästchen mit Fadern was MIDI ausgibt
 
psicolor schrieb:
(man müsste schließlich die Faderpositionen in Variablen speichern um dann in den Note-On Events die Velocity zu ersetzen).
??? Du meist 8 verschiedene feste Werte oder wie? Ich verstehe nicht, wie Du das meinst. Ich will ja die Faderposition in Echtzeit ändern und die Velocity der durchlaufenden Noten soll sich entsprechend ändern.
 
Hm, hab mich blöd ausgedrückt. Ich hab die Terminologie vom Event Processsor nicht im Kopf, daher versuch ichs mal in "Kauderwelsch":

Map the following Event: CC vom Fader
To: Store the CC Value in Variable A

Außerdem:

Map the following Event: Note On with arbitrary velocity
To: Note-On with velocity from variable A

Das heist, dass Note On Befehle immer mit der Velocity aus der Variablen raus gehen, egal wie sie ankommen. Und immer wenn du den Fader berührst, wird die Variable aktualisiert.

Die Software gibts ja runterzuladen, aber ich hab grad kein Zugriff auf ne Windose, daher tu ich mir da etwas schwer. Falls du nen Windows Rechner zur Hand hast, kannste mal kucken, ob du's mit der Software selber hinbringst
http://www.midisolutions.com/ptevp.htm
Ich denk aber das sollte recht fix gehen - spätestens wenn du versuchst dich von meinen miserablen Erklärungsversuchen zu befreien.
 
Re: AW: Velocity/Aftertouch per Fader?

Wäre das nicht auch was für den BCR2000? Einfach zwei Encoder mit den richtigen CCs + Kanal belegen. Ist natürlich kein kleines Kästchen und hat deutlich mehr als 2 Regler...
 
PolyAftertouch könnte der BCR ev. noch aber die Velocity Werte von Note Events verändern kann er definitiv nicht.
 
fanwander schrieb:
Irgendwelche Ideen, wie ich sowas relativ aufwandsfrei aus anderen Komponenten zusammenkriegen könnte?

Y.A.M.A. (Yet another midi adapter)


Der Chip hat direkt Analogeingänge, an die man Potis anschließen kann, auf der Platine vorbereitet für bis zu 4 Stück.

Software dafür müsste ich dir halt basteln, sollte aber machbar sein. (Zumindest wenn deine Aufgabenstellung klar ist, und es keinen feature creep gibt. )
(Sind ein paar Zeilen in C, der ganze Code zum Midi aufdröseln und verschicken ist schon da. )

Das Ding braucht halt 'ne Wandwarze. (AC oder Minus außen, so 8...12V, wenig Strom. )

P.S.: Faderschlitze müsstest du allerdings selber feilen. Ich kann nur Poti-Löcher bohren.

Edit: Realitätsabgleich Netzteilstecker-Polung
 

Anhänge

  • YAMA-innen.jpg
    YAMA-innen.jpg
    57,2 KB · Aufrufe: 195
psicolor schrieb:
...daher versuch ichs mal in "Kauderwelsch":

Map the following Event: CC vom Fader
To: Store the CC Value in Variable A
Außerdem:
Map the following Event: Note On with arbitrary velocity
To: Note-On with velocity from variable A
Ah, verstanden. Ja das wäre eine Möglichkeit. Allerdings brauche ich dann noch eine Faderbox
Das Kästchen von Nordcore mit einem Poti ist also etwas verlockender.
 
Hab's nicht ganz kapiert, aber der MidiPal sollte so etwas in der Art können. Hat aber nur einen Regler.
 
nordcore schrieb:
Y.A.M.A. (Yet another midi adapter)

Der Chip hat direkt Analogeingänge, an die man Potis anschließen kann, auf der Platine vorbereitet für bis zu 4 Stück.

Software dafür müsste ich dir halt basteln, sollte aber machbar sein. (Zumindest wenn deine Aufgabenstellung klar ist, und es keinen feature creep gibt. )
(Sind ein paar Zeilen in C, der ganze Code zum Midi aufdröseln und verschicken ist schon da. )

Das Ding braucht halt 'ne Wandwarze. (AC oder Minus innen, so 8...12V, wenig Strom. )

P.S.: Faderschlitze müsstest du allerdings selber feilen. Ich kann nur Poti-Löcher bohren.

Na das wäre doch was.

Dann würde ich gleich mal den Feature Creep vorweg nehmen ;-) :

Daten des mit Poti 3 angewählte MIDI-Kanals werden überarbeitet. Kompletter MIDI-Thru auf allen anderen Kanälen, SysEx-Thru muss nicht sein.
3 Potis, ein Schalter:
Poti 1: der Potiwert ersetzt den Velocity-Wert aller eingehenden Note-Ons die auf dem mit Poti 3 gewählten Kanal reinkommen. Der Minimal-Wert ist 1 (!)
Poti 2: der Potiwert wird als Channelpressure auf dem mit Poti 3 gewählten Kanal ausgegeben. Eingehende Channelpressure-Kommandos werden unterdrückt.
Poti 3: MIDI-Kanal-Anwahl für die Funktionen von Poti 1 und 2
Schalter: Aktivierung der Sonderfunktion Auto-Hold ->

Die Funktion Auto-Hold erkennt den All-Notes-Off-Status auf dem gewählten Kanal, indem sie die Note-Ons und Note-Offs einfach zählt, wenn count(NoteOn) = count(NoteOff), dann herrscht All-Notes-Off-Status (sauber wäre zu prüfen, ob wirklich zu allen Note-Ons die richtigen NoteOffs gekommen sind; das dürfte aber deutlich aufwändiger sein).
Nach einem solchen AllNoteOff-Status sendet die Funktion nach der ersten eingehenden Note-On die Abfolge CC64=0; CC64=127.

Wenn das mit dem Auto-Hold zu kompliziert ist, genügt mir erst mal die Funktion mit den drei Potis und Velocity und Aftertouch.
 
Der Midi-Kanal wird bei den Kisten bisher per "Lern-Funktion" eingestellt: Lern-Taster drücken (versenkt), orange LED geht an, Midi-Note mit passendem Kanal schicken, LED blinkt zwei mal: Kanal ist (permanent) eingestellt.
Das hätte den Vorteil, dass es schon fertig ist und sich nicht so leicht verstellt. Ist aber nur brauchbar, wenn du das nicht dauernd umstellen willst.


Die orange LED würde ich hier "Eingriff" anzeigen lassen. (Blinkt kurz auf, wenn entweder ein Note-On umgebastelt wurde oder Aftertouch gesendet wird. )


Der Rest ist soweit klar.

Zwei nahe liegende Ergänzungen zum Schalter: Wenn man den Schalter einschaltet wird unbedingt CC64=127 geschickt. (Hold On).
Beim Ausschalten wird CC64=0 (Hold Off) geschickt.
 

Anhänge

  • YAMA-aussen.jpg
    YAMA-aussen.jpg
    47,7 KB · Aufrufe: 167
nordcore schrieb:
Der Midi-Kanal wird bei den Kisten bisher per "Lern-Funktion" eingestellt: Lern-Taster drücken (versenkt), orange LED geht an, Midi-Note mit passendem Kanal schicken, LED blinkt zwei mal: Kanal ist (permanent) eingestellt.
Das hätte den Vorteil, dass es schon fertig ist und sich nicht so leicht verstellt. Ist aber nur brauchbar, wenn du das nicht dauernd umstellen willst.
Das ist natürlich völlig ausreichend.

Dann könnt man auf dem dritten Poti einfach den MIDI CC für breath control schicken. (CC 2)


Zwei nahe liegende Ergänzungen zum Schalter: Wenn man den Schalter einschaltet wird unbedingt CC64=127 geschickt. (Hold On).
Beim Ausschalten wird CC64=0 (Hold Off) geschickt.
ja, gute Idee.
 
Du *musst* keine 3 Knöppe drauf setzen. (Das wird auf der Oberfläche der Kiste dann "grade so" eng. )
Pedaleingang? (Pedal ist ja auch nix anderes als ein Poti, hier an 5V und einem AD-Wandler-Eingang)

Und willst du Dreh-Knöppe (Alpha 16mm mit MXR-Clone Knöpfen) fertig drauf oder selber Schlitze feilen?
(Mir ist "fertig" eigentlich lieber, ist beim Testen einfacher... )

Schalter = Kippschalter. Wippe sieht zwar besser aus und ist beim Transport unempfindlicher, ist aber von der Bedienung hier nicht so passend (und ich müsste wieder feilen... ).

Gestern mal 'n bisken programmiert ... und dabei festgestellt, dass mir der Midi-Merge Teil doch glatt noch fehlt :selfhammer: . Bisher habe ich nur Daten verändert, jetzt sollen ja auch neu dazu kommende in den Datenstrom eingefädelt werden. Ist keine Rakenwissenschaft, aber man muss dann halt doch den Running Status für den Ausgang komplett mitführen und passend aussenden.
Das muss ich am Wochenende dann doch noch mal testen...

Die mitgeführten NoteOn sind kein Problem - und sie verhindern, dass doppelt gesendete Noten den Zähler durcheinander bringen.
Durch Kabelunterbrechung können "hängende" Noten entstehen. Die Kiste wertet zwar Acitve Sense aus, aber das bekommt man ja nicht immer.


Sys-Ex durchreichen ist auch kein Problem. (Führt allerdings eine Fehlerzustand-Behandlung ein, von der ich nicht weiß, ob sie explizit so im Midi-Standard drin steht: ein SysEx wird von jedem neuen Status-Byte abgebrochen (nicht aber von Real-Time, die dürfen auch mitten im SysEx stehen!). Da es Geräte gibt, die das (=kein gesetztes 7Bit *im* SysEx) falsch machen, funktioniert das nicht unbedingt. Das habe ich so gewählt, weil es nach Kabelunterbrechung wieder "von alleine" aufsetzt. )
 
nordcore schrieb:
Du *musst* keine 3 Knöppe drauf setzen.
ich *will* aber ;-)


(Das wird auf der Oberfläche der Kiste dann "grade so" eng. )
Pedaleingang? (Pedal ist ja auch nix anderes als ein Poti, hier an 5V und einem AD-Wandler-Eingang)

Und willst du Dreh-Knöppe (Alpha 16mm mit MXR-Clone Knöpfen) fertig drauf oder selber Schlitze feilen?
(Mir ist "fertig" eigentlich lieber, ist beim Testen einfacher... )

Schalter = Kippschalter. Wippe sieht zwar besser aus und ist beim Transport unempfindlicher, ist aber von der Bedienung hier nicht so passend (und ich müsste wieder feilen... ).
Um die Hardware brauchste Dich nicht zu kümmern. Die mach ich mir dann selber.


Die mitgeführten NoteOn sind kein Problem - und sie verhindern, dass doppelt gesendete Noten den Zähler durcheinander bringen.
Durch Kabelunterbrechung können "hängende" Noten entstehen. Die Kiste wertet zwar Acitve Sense aus, aber das bekommt man ja nicht immer.
Naja, da schicken wir einfach nach dem Booten ein all-notes-off (oder 127 NoteOff's). Dann dient der Ein/Aus-Schalter einfach als Notknopf...

Sys-Ex durchreichen ist auch kein Problem. (Führt allerdings eine Fehlerzustand-Behandlung ein, von der ich nicht weiß, ob sie explizit so im Midi-Standard drin steht: ein SysEx wird von jedem neuen Status-Byte abgebrochen (nicht aber von Real-Time, die dürfen auch mitten im SysEx stehen!). Da es Geräte gibt, die das (=kein gesetztes 7Bit *im* SysEx) falsch machen, funktioniert das nicht unbedingt. Das habe ich so gewählt, weil es nach Kabelunterbrechung wieder "von alleine" aufsetzt. )
Also von mir aus kannst Du Sysex weglassen. Ich persönlich benutze das Live nicht. Aber wenn Du es drin haben willst, dann bin ich nicht dagegen. Vielleicht kriegt man dann ein saubereres Timing, wenn man nicht so viel Prozessorzeit mit solchen sekundär-Routinen verbrät.
 
Mr. Roboto schrieb:
Hab's nicht ganz kapiert, aber der MidiPal sollte so etwas in der Art können. Hat aber nur einen Regler.
Nein, kann er leider nicht (jedenfalls nicht ohne die Firmware zu patchen) da der MidiPal keine "Variablen" kennt. Mit den Filtern könnte man derzeit zB. nur die Velocity Werte auf eine festen Wert umschreiben oder Randomwerte einsetzen, nicht aber variable Werte (vom Encoder oder aus einem anderen CC).
 
Sorry, so gut wir gar nicht, bisher nur schon mal die Potis in meiner "Testkiste" verkabelt ... der TTSH erwies sich leider als ziemlicher Zeitfresser. Ist jetzt aber besser, die Platinenlayouts sind alle raus gegeben und noch nicht wieder da.
 
Geht da bei dir auch Midi Clock durch?

Wegen des Mergens werden ja schon mal ein paar Bytes gepuffert. Wenn ich alles in einen Output Buffer stecke, dann können sich die Real-Time Messages schon mal um 1..2ms verzögern (=Jittern!). Ließe sich durch einen eigenen Realtime Buffer reduzieren, der dann priorisiert ausgegeben wird. Der zusätzlich Clock Jiter bleibt dann dicht am theoretischen Minimum (etwa eine Zeichenzeit = 320µs).

Und hast du eine Vorgabe, wie schnell die CCs/der Aftertouch maximal erzeugt werden sollen?
Sonst orientiere ich mich da an meinem PCR500. (Wobei ich da das Gefühl habe, das der schon sehr auf der sicheren Seite ist, und auch einen Matrix 1000 (o.ä.) nicht überfordern will... )
 
nordcore schrieb:
Geht da bei dir auch Midi Clock durch?
Gute Frage! Ja: da ich die Supermax-Erweiterung hab, brauche ich MIDI-Clock für dne Arpeggiator.

Wenn Dir das alles aber zu kompliziert ist, dann kann ich auch einen externen Merger nehmen.


Wegen des Mergens werden ja schon mal ein paar Bytes gepuffert. Wenn ich alles in einen Output Buffer stecke, dann können sich die Real-Time Messages schon mal um 1..2ms verzögern (=Jittern!). Ließe sich durch einen eigenen Realtime Buffer reduzieren, der dann priorisiert ausgegeben wird. Der zusätzlich Clock Jiter bleibt dann dicht am theoretischen Minimum (etwa eine Zeichenzeit = 320µs).

Und hast du eine Vorgabe, wie schnell die CCs/der Aftertouch maximal erzeugt werden sollen?
Ein Vorgabe hab ich nicht. Da ich eher an langsamere Echtzeitmodulationen denke ("Filter aufziehen..."), wäre das jetzt nicht so timing relevant.
 
Alles richtig zu machen erscheint meist nur bei oberflächlicher Betrachtung aufwendiger. In Echt holt einen der Pfusch meist wieder ein, bevor es gut läuft.

Hast du eine Meinung zu Active Sense?
Die Kiste wertet es auf jeden Fall aus. (D.h. wenn es kommt und dann ausbleibt, wird der interne Zustand zurückgesetzt, so das nix hängenbleibt. )

Ausgegeben wird derzeit das was reinkommt und so wie es reinkommt.
Eventuell ist es aber sinnvoll das zu erzeugen, ggfls. auch unabhängig von der Quelle.
Mein Edirol PCR500 erzeugt das z.B. unnötig auch mitten in vorhandenen Daten, legal, aber unnötig. Wenn damit nicht einige Empfänger auf die Nase gefallen wären, gäbe es YAMA wohl gar nicht ...
(Ausfiltern kommt übrigens nicht in Frage, wer sich vor den Idioten bücken ... äh.... verbeugen möchte, die das in ihren Empfängerroutinen nicht mal richtig ignoriert bekommen, der muss das schon selber machen ... ist ja open source ... )
 
nordcore schrieb:
Alles richtig zu machen erscheint meist nur bei oberflächlicher Betrachtung aufwendiger. In Echt holt einen der Pfusch meist wieder ein, bevor es gut läuft.
:)

Hast du eine Meinung zu Active Sense?
...
Ausgegeben wird derzeit das was reinkommt und so wie es reinkommt.
Eventuell ist es aber sinnvoll das zu erzeugen, ggfls. auch unabhängig von der Quelle.
ich gestehe, ich habe mich damit noch nie ernstlich beschäftigt. Ich selbst habe meines Wissens nichts außer dem DX7 selbst, das Active Sense senden würde. Eigentlich bin ich da eher kein Freund von, denn live kanns mal sein, dass ein MIDI-Kabel kurzfristig weg ist, und deswegen soll sich meine Sound nicht sofort resetten.
 
Das Poti-Filter mit der Skalierung auf 127 ( :selfhammer: mal wieder der echte Intellektuellenfehler ) und Hysterese (damit er auf der Kante zwischen zwei Werten nicht dauernd sendet) spinnt noch, der Rest sieht aber schon mal gut aus.
 
So, trotz Mittagsschlaf noch relativ lange nach einen *richtig* blöden Fehler gesucht:
#define ADMUX_P4 ((1<<MUX2)||(1<<MUX0) ) // PC5 (AIN 5)
richtig
#define ADMUX_P4 ((1<<MUX2)|(1<<MUX0) ) // PC5 (AIN 5)

(der obere Ausdruck ist 1, was dann immer den falschen Kanal gewandelt hat. )

... nu erst mal 'n Kaffee :kaffee:

... und jetzt geht alles.

( und was mach ich jetzt mit Poti4? ... Expression ist langweilig ... Swing? wollte ich schon immer mal machen... )


Weißt du schon, was für ein Gehäuse du haben willst?

Soll es so ähnlich werden wie die Dinger die ich gebaut habe, du insbesondere so ein Gehäuse nehmen willst und den Programmiertaster, die Programmier-LED und die Power LED (wie im Bild) auf die Platine setzten willst (was sie auf die Unterseite der Kiste verfrachtet!), dann würde ich die drei Löcher schon mal vorbohren, das ist ohne Schablone nämlich echter Mist.
Das Foto oben ist ein flaches Gehäuse (31mm), für den Schalter & die Potis braucht man das hohe Gehäuse (50mm). (Halbes flaches, halbes hohes Gehäuse geht auch, da muss man aber schon Tetris zwischen oben und unten spielen. )
 
nordcore schrieb:
Weißt du schon, was für ein Gehäuse du haben willst?
Wenn ich ehrlich bin: Ich mag keine Platinen die sich auf eine bestimmte Gehäuse-Bauform versteifen. Mach doch einfach Pinheads an die man die Verkabelung zu den Potis dranlötet oder mit Quetschsockel dranverbindet.
 
Die meisten Elemente sind eh frei zu verdrahten:

Die Stecker gibt das hier auch nur, weil das eine Entwicklungs- bzw. Bastelkiste ist. Normal löte ich die Kabel an.

Die Abstimmung auf das Gehäuse ist eine simple Kostenfrage, so ist das, in der reinen "Filterversion" (also ohne weitere Bedienteile außer Taster und den beiden LEDs, wie im Foto weiter oben) recht schnell und recht günstig fertig gebaut.

Edit/PS.: für dein Projekt wäre es wohl am sinnigsten, wenn ich dir die Platine so weit bestücke wie gebraucht (das geht schneller als wenn ich den Bestückungsdruck dazu malen muss... ) und dir dann einen Anschlußplan male.
Stecker und das ganze externe Geraffel kannst du dann selber nach Bedarf drauf & dran machen.
Willst du 'ne AC oder 'ne DC Wandwarze (irgendwas 8...12V geht) nehmen? Für DC wird der Elko nicht so hoch.

So, Anschlußplan fertig:
YAMA-VELO-wiring.jpg


SCHALTPLAN
(fiktive Vollbestückung)
 

Anhänge

  • YAMA-VELO.jpg
    YAMA-VELO.jpg
    136,7 KB · Aufrufe: 50
nordcore schrieb:
Edit/PS.: für dein Projekt wäre es wohl am sinnigsten, wenn ich dir die Platine so weit bestücke wie gebraucht (das geht schneller als wenn ich den Bestückungsdruck dazu malen muss... ) und dir dann einen Anschlußplan male.
Stecker und das ganze externe Geraffel kannst du dann selber nach Bedarf drauf & dran machen.
Willst du 'ne AC oder 'ne DC Wandwarze (irgendwas 8...12V geht) nehmen? Für DC wird der Elko nicht so hoch.
Das sieht ja prima aus. :adore: Wandwarze ist bei mir immer DC.
 
Und so sieht es dann in echt aus:


Software ist soweit auch fertig. Timing sieht sehr gut aus.
 

Anhänge

  • YAMA-velo-real.jpg
    YAMA-velo-real.jpg
    119,4 KB · Aufrufe: 30


Neueste Beiträge

News

Zurück
Oben