Blog Beiträge

Entwicklung einer Synthesizer Steuerung

Seit einigen Wochen beschäftigt mich die folgende Fragestellung:

Wie baut man eine Steuerung für einen Synthesizer? Jeder, der sich mit elektronischen Musikinstrumenten beschäftigt hat, kann erahnen, was ich meine.

Die Steuerung teilt sich offenbar auf in die Bereiche „spielen“ und „einstellen“. Beim Spielen eines Instruments spielt der Midi Standard eine tragende Rolle. Hier werden Noten, Anschläge und Controller Daten an das Instrument gesendet, welches dann mit dem programmierten Verhalten reagiert. Ein neuer Ton wird gespielt, eine neue Stimme reserviert, ein Klang moduliert.

Beim Einstellen von Instrumenten ist das etwas anderes. Ein Instrument besteht intern aus einer Verschaltung von Oszillatoren, Hüllkurven und Filtern. Ein Instrument kann mehrstimmig sein. Ein Instrument hat somit Parameter wie:

  • Oszillator Parameter (Typ, Pitch, Lautstärke, Pulsbreite)
  • Hüllkurvenparameter (Attack, Release…)
  • Filter Parameter (Cutoff Frequenz, Resonance)

Es gibt verschiedenartigste Möglichkeiten, wie man ein elektronisches Musikinstrument „parametriert“. Man kann für jeden denkbaren Parameter einen eigenen Schalter oder „Knopf“ vorsehen. Dies wird tatsächlich bei vielen VST Instrumenten gemacht. Bei Hardware Synthesizern geht man dagegen einen anderen Weg. Die Anzahl der Bedienelemente ist eher begrenzt. Ein Waldorf Blofeld hat zum Beispiel gerade einmal 7 Regler, die als endlos Encoder ausgeführt sind. Dazu gibt es ein LCD Display. in dem ein „Menü“ angezeigt wird, was men gerade bearbeitet. Ganz krass wird es bei Expandern wie dem guten alten Yamaha TG500. Dort hat man eigentlich nur eine Menge Taster und einen Regler.

Was schwebt mir nun vor? Es ist ein Kompromiss zwischen Bedienerfreundlichkeit und Hardware Aufwand. 3 oder 4 „Rotary Encoder“ sowie ein zweizeiliges LCD Display sollten ausreichen, um einen Synthesizer einzustellen.

  • Sektion
  • Komponente
  • Parameter
  • Wert

Die Sektion kann die Stimme sein, der Effekt, Midi Instrument.

Die Komponente ist bei der Stimme zum Beispiel der Oszillator1 oder Hüllkurve1.

Der Parameter ist wiederum abhängig von der Komponente.

Bei jedem Parameter kann ein Wert eingestellt werden. Dieser Wert kann relativ, absolut oder diskret sein. Habe lange überlegt ob es sinnvoll sein könnte, hier exakte Einheiten zu hinterlegen, wie Attack Time in ms. Ich denke aber, dies ist nicht hilfreich und wird auch kaum praktiziert, in VST sowie echten Synthesizern. Es führt eher zu einem unnötigen Aufwand bei der Entwicklung.

Es geht los!

Habe schonmal eine Seite angefangen für mein Projekt „Synthesizer mit dem Raspberry Pi Pico 2“. Wie es dazu kam, die Geschichte des Projektes.

Dabei stellte ich fest dass es wirklich gut wäre, eine Seite über Grundlagen der Sound Programmierung aufzubauen. Hier wird recht viel Content entstehen in nächster Zeit.