Midi- und Parameter-Steuerung für Analog Effekt

  • Hi,
    nach längerer Abstinenz habe ich meine Effektsteuerung wieder aufgenommen.
    Es geht darum, die Potis (und Relais) eines Analogeffekts zu ersetzen und verschiedene Sätze von Potistellungen als "Patches" abrufen zu können.

    Ältere Threads waren:
    Parameter- Steuerung für Effekt - Effektgeräte bauen - Das Musikding Forum
    Digital gesteuertes FX - Interesse an einem Forumsprojekt? - Effektgeräte bauen - Das Musikding Forum

    Über eine längere Analyse war ich zur Erkenntnis gelangt, dass die Verwendung von "Vactrols", d.h. LED und LDR die unschlagbar universelle Schnittstelle zu Analogeffekten ist. Relais kann man natürlich auch ansteuern.

    Inzwischen bin ich (nach ESP32) wieder zurück beim Controllertyp "Teensy3.5/3.6/4.1".
    Gründe:

    • Anzahl Ports als schnelle PWM direkt verfügbar. 234kHz bei 8 bit. Die 234kHz lassen sich gut wegfiltern und bleiben unhörbar. Durch die Möglichkeit, Pinausgänge als "Opendrain" zu konfigurieren, braucht man jetzt nur noch einen Widerstand und einen Kondensator, die Diode entfällt.
    • SD- Karten Halter eingebaut, damit kann auf der SD-Karte ein Konfigurationsfile liegen, das man als Textdatei bearbeiten kann und das enthält, wie Parameter heißen (z.B. "Gain" und an welchem Pin welcher LDR liegt.

    Bei der Abfrage nach Interesse in 2019 wurde deutlich, dass eine Parameter-Steuerung erst so richtig interessant wird, wenn mehrere Effekte gemeinsam gesteuert werden können. (Immo wollte 24Potis+8Relais, wovor ich kapitulieren musste...) Die Midi-Verbindung ist der Schlüssel, das runterzubrechen in machbare Einzelprojekte. Deshalb habe ich jetzt Midi aufgenommen und diese Woche soweit kapiert, dass ich weitestgehend überzeugt bin, dass es machbar ist.

    Wie man sieht, ist die Koppelung mit dem Effekt hardwareseitig recht simpel.

    Der Son-Of-Ben ist über die "Freiluftverdrahtung" mit einem zusätzlichen Hardclipping ausgerüstet.

    So sieht die Konfigurationsdatei für den Son of Ben aus:

    Zunächst werden in Zeilen bis 23 die Hardware Verbindungen und deren Charakteristik definiert. Dann bis Z. 32 die Parameter und deren Namen, die auf dem Display erscheinen, festgelegt. (Das ist von den Hardware-Verbindungen getrennt, da man für echte Potis 2 LDRs braucht. Ich bin hier aber mit einzelverbindungen ausgekommen)
    Ab Zeile 33 sind die Namen der Patches (Parameterkombinationen) festgelegt. Und ab 41 die Vorbelegung mit Parametern.
    Ab Zeile 52 wird die ganze Sache gestartet.
    In der Datei fehlen noch die Midi-Einstellungen.
    (Das ist eigentlich ein Forth script, falls es jemanden interessiert. Das Backslash \ bedeutet, dass der Rest der Zeile Kommentar ist.)


    ===============
    Ich denke darüber nach, ob ich vorprogrammierte Controller käuflich verfügbar machen soll. Doku wahrscheinlich auf Englisch für breitere Anwendung?

    Hat jemand Interesse, das Konzept an einem überschaubaren (!!!) Effekt zu probieren?
    Ich stelle mir im Moment vor, dass der/diejenige 2 gleiche Effekte aufbaut, zunächst mit Potis an Kabeln zur Funktionsprüfung. Eines davon schickt er mir und bekommt dafür von mir einen vorprogrammierten Controller im Austausch. Wir bauen dann parallel die Steuerung auf und bringen sie zum Laufen. Vorab brauche ich neben dem Effektvorschlag eine gute Beschreibung der gewünschten Eigenschaften. - Ein Kompressor vielleicht?

    Gruß Christof

  • ... und dann hat diese Woche die Raspi Foundation den ganzen DIY Controllermarkt auf den Kopf gestellt mit deren neuen Raspberry Pico...
    Sieht gerade so aus, wie wenn man mit dem Ding das Ganze nicht nur viel billiger sondern auch noch viel einfacher hinkriegen kann für Nichtprogrammierer, denn per Knopfdruck wird der Pico zum USB Massenspeicher auf den man das Programm nur draufziehen muss.
    Es steht und fällt damit, ob die max 16 PWMs schnell genug sind für diese Anwendung, mal sehen....
    Getting Started with Raspberry Pi Pico – Raspberry Pi

  • Update:
    Mit dem RPi Pico habe ich nun erste Versuche gemacht und die Software vom "Exoten Forth" auf die derzeitige "Modesprache (Micro)python" umgestellt. (Die hat den Haken, dass sie viel mehr Speicher braucht und 10* langsamer ist als Forth bzw 140 mal langsamer ist als C. Für die hier gegebene Anwendung ist das alles aber nicht das Problem.)
    Aktueller Stand ist:

    • dass das Micropython die benötigten Funktionen bietet. Es scheint auch schon stabil zu sein, hatte bisher keine Probleme.
    • 13 Ausgänge für Vactrols oder Relais sind vorgesehen. Bedienung über kleines Display (s.o.) und Drehencoder sowie optional 2 Fußtaster. Midi habe ich noch nicht wieder zum Laufen gebracht.
    • Den 2. CPU-Kern habe ich noch nicht verplant.
    • dass die PWMs schnell genug sind, aktuell betreibe ich diese mit 125kHz. Auflösung ist bei 125MHz CPU-Taktfrequenz 8ns. D.h. 0,1%.
    • dass die PWMs keine OPEN_DRAIN Möglichkeit haben, es sind als wieder zusätzliche Dioden erforderlich
    • dass der Buck-Converter auf dem Pico-Board entweder Störungen (93Hz??) selbst erzeugt oder durchlässt. Mit einem Längsregler für die 3,3V wird das Signal sauberer.
    • Ursprünglich hatte ich gedacht, dass man die Software + Parameter direkt aufbringen kann, indem man das Board in den Zustand als USB-Massenspeicher bringt. Ganz so einfach ist es nicht, aber mit der Oberfläche "Thonny" geht der Rest auch nicht sehr schwer. Man kann damit die Parameter nicht nur editieren sondern auch gleich draufspielen.
    • Der Pico ist sehr preiswert, benötigt keine SD Karte und hat eine schöne klare Struktur. Die Software als Micropython ist auch viel klarer, so dass das ganze Projekt deutlich geradliniger wird.
  • Ich muss gestehen, dass ich viel zu schlecht bin im coding, finde derartige Projekte aber spannend und am Nachbau interessiert.

    Oben schreibst Du, dass Du "testkaninchen" brauchst - ist das noch so? Dann würd ich gern mal direkt kontakten, was wie wo wann ;)

    Grüße!

  • Ich muss auch mal sagen: Ich verstehe kein Wort und kann zu der Entwicklung 0 beisteuern. Aber Verwendung hätte ich dutzendfach. Sollte es irgendwann so weit sein, dass es eine Schritt für Schritt-Anleitung gibt steht es weit oben auf meiner Liste.

  • ... und dann hat diese Woche die Raspi Foundation den ganzen DIY Controllermarkt auf den Kopf gestellt mit deren neuen Raspberry Pico...
    Sieht gerade so aus, wie wenn man mit dem Ding das Ganze nicht nur viel billiger sondern auch noch viel einfacher hinkriegen kann für Nichtprogrammierer, denn per Knopfdruck wird der Pico zum USB Massenspeicher auf den man das Programm nur draufziehen muss.
    Es steht und fällt damit, ob die max 16 PWMs schnell genug sind für diese Anwendung, mal sehen....
    Getting Started with Raspberry Pi Pico – Raspberry Pi

    Ich bin auch gespannt, was der Pico so kann und was _du_ damit anstellst!
    Nur glaube ich nicht, dass er den ganzen Controllermarkt auf den Kopf stellt.
    Anstöpseln und die Datei zum Flashen in einen Ordner schieben, können die Nucleo Boards von ST schon seit Jahren.
    Der Preis ist halt geil. Da muss man keine gefälschten Blue Pills mehr kaufen und dann genervt sein Geld zurückverlangen :D
    Ich drück denen die Daumen, dass das Ding fliegt.

  • Schön, es gibt also ggf. doch Interesse an einer Parametersteuerung. :)

    Selbst wenn ich eine Software zur Verfügung stelle, ist einerseits erforderlich, diese Software draufzuspielen und andererseits muss ein Konfigurationsfile bearbeitet und draufgespielt werden, um den Pico auf den gewählten Effect einzustellen.

    Hier wird in Kapitel 4 beschrieben, wie man den Editor "Thonny" (gibt's auch für Windows, wie ich ihn benütze) mit Verbindung zum Pico zum Laufen bringt (Kapitel 4) und detailliertes zur Programmierung: Raspberry Pi Pico Python SDK

    Hier bekommt man eine Einführung in Microcontrollerprogrammierung mit Micropython:
    Get Started with MicroPython on Raspberry Pi Pico — HackSpace magazine

  • Ich bin auch gespannt, was der Pico so kann und was _du_ damit anstellst!Nur glaube ich nicht, dass er den ganzen Controllermarkt auf den Kopf stellt.
    Anstöpseln und die Datei zum Flashen in einen Ordner schieben, können die Nucleo Boards von ST schon seit Jahren.
    Der Preis ist halt geil. Da muss man keine gefälschten Blue Pills mehr kaufen und dann genervt sein Geld zurückverlangen :D
    Ich drück denen die Daumen, dass das Ding fliegt.

    Auf den Kopf stellen auf Grund des Preises. Es gibt ein paar kleinere Firmen (z.B. Parallax, PJRC, Adafruit), die von der Marge leben, dass sie so ein Platinchen für ein vielfaches verkaufen. Das hat schon unter dem ESP32 ganz gewaltig gelitten und jetzt kommt ein leistungsfähiges Board samt sehr guter Dokumentation vom Start weg. Das ist schon gut gemacht: Regler für die Kerne auf dem Chip, USB-Seriell auf dem Chip. Kann Code aus dem SPI-Rom ausführen mit automatischen Caching. Leichter Einstieg via Micropython, Schmankerl für Fortgeschrittene über C, 2. Kern und die Pio. Mit der Interpolationseinheit kann man wohl auch neuronale Netzwerke basteln? Ich sehe keinen Grund dass das nicht fliegt. Der Händler, bei dem ich 2 Stück gekauft habe, hat innerhalb von <2 Tagen >2000 Platinchen verkauft, jetzt ist vergriffen....

  • Update:
    Inzwischen läuft meine Anwendung mit 2 Teilen im (ungeschirmten) Holzgehäuse:
    Ein Orange-Squeezer Compresser, der jedoch so modifiziert ist, dass er auch als Treble- booster oder als linearer booster betrieben werden kann.
    Der Preamp "Son of Ben", jedoch mit einer zusätzlichen hard-clipping stufe.
    PWM läuft mit 125kHz, keine Probleme.
    Zusätzlicher Linearregler 3.3V.
    Fußtaster Eingang (Stereoklinke).
    Midi Programmwechsel Eingang funktioniert. (Dieses "Protokoll" ist ja super simpel....)
    Es ist schon ziemlich fummelig, einige Parameter mit dem Rot-Encoder auszuwählen und einzustellen.

    Auf dem Bild sieht man links die beiden Analogeffekte, unten Display und Rot-Encoder. (Es findet die beliebte P2P- Verdrahtungstechnik Anwendung.)
    Rechts oben den Pico. Direkt links davon die Filter (Diode-Widerstand-Kondensator) für die Ansteuerung der Vactrols.
    Links unten am Pico: 2*Transistor für Relais, die ich aber momentan nicht brauche.
    Zwischen Pico und Son of Ben Ladungspumpe 5V ==> 9V
    Unterhalb des Pico der Optokoppler für den Midi-Eingang, der über Miniklinke läuft.
    Rechts unten am Pico sieht man RC- Filter für die Entprellung des Rot-Encoders.


    ...von außen aufgeräumter...

    Die Vermutung, dass der Pico sehr gut für diese Sache geeignet ist, hat sich bestätigt.
    Ich bin dabei, eine Doku dazu zu machen. Das wird dieses mal auf Englisch (innerhalb meiner Möglichkeiten....) geschehen und ich werde dann dazu einen eigenen Thread eröffnen.

    Wenn man die Parametersätze erstmal eingestellt hat, dann kann man entweder per Midi oder per Fußtaster die Patches/Sounds wechseln.
    Gruß Christof

  • Hi!

    Super spannende Thematik!
    Meine Überlegungen gehen in eine ähnliche Richtung.
    Ich möchte gerne meine zukünftigen DIY Röhrenpreamps mit einer digitalen Schaltzentrale versehen.
    Grundsätzlich war ich schon mal froh, diesen Thread gefunden zu haben, da offenbar brauchbare Ergebnisse mit LDRs erzielt werden können und sogar Midi berücksichtigt wird.
    Meine Anforderungen, die hier allerdings abweichend sind:

    a) Analoge Potis am Frontpanel

    -> schätze für sowas ist der Pico ungeeignet da kein ADC onboard, Arduino Nano bietet aber 8 analoge Eingänge

    b) Klangregelung erfordert Spannungsteiler, sprich zwei LDRs pro Poti, die gegengleich geregelt werden müssen

    c) Relais für Kanalumschaltung

    Ich schwanke zwischen R2R-Leitern, die via Shiftregister per Relais durchgeschalten werden, um die Potis zu emulieren und LDRs.
    Eleganter fände ich eigentlich die LDR, hatte aber öfter mal von Abratungen gelesen, da Wärmeentwicklung zum Drift der Werte führen kann und das PWM Signal zu hören sein könnte.


    Mich wundert sehr, dass noch niemand ein universelles Modul für Verstärker- und Effektebau auf den Markt gebracht hat, da die Vorteile für Bühne und Aufnahme immens sind und es Hardwareseitig gar nicht so ein großer Aufwand ist. Den Flaschenhals sehe ich am meisten beim Programmieren. Wäre spannend, ob ChatGPT hierbei brauchbare Abhilfe schaffen kann.

    Hat jemand Erfahrungen damit?

  • Hallo,

    nur als Hinweis, worauf ihr bei der Auswahl achten solltet, wenn ihr durch so eine digital gesteuerte Analogschaltung das Signal selbst schickt:

    Als ich mit Digital-Poti-ICs gearbeitet habe, war das allgemeine Problem, daß je höher der nominale Potiwert, um so niedriger die Grenzfrequenz der Poti ICs. Das war für die Substitution von typischen 500k/1M-Potis in Röhrenamps ein besonderes Problem, habe damals auch keine zufriedenstellende Lösung mit ICs gefunden.

    Was ich damit sagen will: Achtet im Datenblatt des in Frage kommenden Kandidaten auf die mögliche Signalbandbreite.

    Gruß, Bernd

    Jaichweiß (Andy Pipkin)

  • Hallo,

    nur als Hinweis, worauf ihr bei der Auswahl achten solltet, wenn ihr durch so eine digital gesteuerte Analogschaltung das Signal selbst schickt:

    Als ich mit Digital-Poti-ICs gearbeitet habe, war das allgemeine Problem, daß je höher der nominale Potiwert, um so niedriger die Grenzfrequenz der Poti ICs. Das war für die Substitution von typischen 500k/1M-Potis in Röhrenamps ein besonderes Problem, habe damals auch keine zufriedenstellende Lösung mit ICs gefunden.

    Was ich damit sagen will: Achtet im Datenblatt des in Frage kommenden Kandidaten auf die mögliche Signalbandbreite.

    Gruß, Bernd

    Das kann ich nur bestätigen.

  • Der Pico hat auch adc Eingänge.

    Ich habe lange gesucht, bis ich einen Controller gefunden habe, dessen pwm bei ausreichender Auflösung so hochfrequent ist, dass man es nicht hören kann. Damit wird die Lösung über Ldr preiswert und flexibel. Eine Temperaturkompensation habe ich nicht benötigt, das wäre wohl aber auch nicht sooo schwierig.

    Ldrs bzw. Die LEDs dazu kann man natürlich auch gleichzeitig gegengleich ansteuern.

    Natürlich kann man auch Relais schalten ggf. Über Treiber Transistor. Siehe PDF.

    Über ChatGPT habe ich bisher gelesen, dass der Standardlösungen bereitstellen kann, die man auch googeln kann. Wenn das Ding größere Programme erstellen sollte, dann müsste man das Ergebnis vorher wohl sehr genau beschreiben.

    Einfach mal an einem einfachen Beispiel rantasten....

    Gruß Christof

  • Danke für die Anteilnahme.

    Wenn ich das richtig verstehe, dann hat der Pico 3 ADC-Eingänge und müsste mit mindestens einem Multiplexer erweitert werden.
    Wäre der Pico dem Teensy 4.1 dennoch vorzuziehen?

    Um mein Vorhaben zu visualisieren hier eine Zeichnung (Teensy 4.1) :


    Am Frontpanel wären somit 8 Potentiometer, ein Mehrwegschalter für die Kanalauswahl und ein (On)-Off-(On) Taster, der die Einstellungen speichert bzw. abrufen kann, sowie ein OLED Display, um den Zustand der Schalterei zu zeigen.

    Eventuell macht ein Rotary-Encoder auch noch Sinn, falls der Midi-Controller gerade nicht gegenwärtig ist.
    Habe ich sonst etwas vergessen?

  • Filter C an den Pwm. Siehe PDF. Du willst auch kein unhörbares HF im Signal.

    Der teensy4.1 ist hier wohl 10fach Overkill, da hier recht wenig Rechenleistung benötigt wird.

    Rot encoder ist universeller verwendbar als ein Kanal Drehschalter, denk ich.

    Ich würde nicht gleich mit einem Röhrenamp anfangen als Startprojekt.

    Bei einem Vox habe ich eine LED als Indikator gesehen, die leuchtet, wenn die Potistellung dem aktuellen Wert entspricht. Nach Patch bzw. KANAL Umschalten ist das ja nicht der Fall. Womit ein Vorteil der Potis wegfällt.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!