Multi Effects Guitar Pedal
Kostengünstiges Gitarreneffektpedal auf Basis eines ARM-Cortex-Mikrocontrollers
Gitarreneffektpedale sind Geräte, die den Klang einer elektrischen Gitarre verändern. Effekte, die ursprünglich aus der analogen Signalverarbeitung stammen, können mithilfe der digitalen Signalverarbeitung (Digital Signal Processing, DSP) digital nachgebildet werden. Vor und nach der Verarbeitung des Gitarrensignals werden Operationsverstärker-Pufferstufen mit Filtern eingesetzt.
Die Implementierung erfolgt auf der STM32-Nucleo-Plattform mit einem STM32H7A3ZI-Mikrocontroller, der Taktfrequenzen von bis zu 280 MHz unterstützt. Das Programm wird mit der Entwicklungsumgebung STM32CubeIDE entwickelt. Die Projektkonfiguration umfasst die Einrichtung der Analog-Digital-Wandler (ADC), Digital-Analog-Wandler (DAC) sowie des direkten Speicherzugriffs (Direct Memory Access, DMA).
Die Softwarearchitektur basiert auf einer blockweisen Signalverarbeitung mit Doppelpufferung (Double Buffering). Die implementierten Effekte sind Delay, Tremolo und Chorus, die mithilfe von Ringpuffern (Circular Buffers) und Niederfrequenzoszillatoren (Low-Frequency Oscillators, LFOs) realisiert werden.
Der Quellcode des Projekts ist auf GitHub verfügbar.
Die für die Implementierung ausgewählten Effekte sind Delay, Tremolo und Chorus.
Der Delay-Effekt ist ein einfacher Effekt, der einen Ringpuffer (Circular Buffer) verwendet, während der Tremolo-Effekt einen Niederfrequenzoszillator (Low-Frequency Oscillator, LFO) nutzt. Im Gegensatz dazu verwendet der Chorus-Effekt sowohl einen Ringpuffer als auch einen LFO und stellt somit eine Kombination aus Delay und Tremolo dar.
Die Benutzeroberfläche ermöglicht dem Benutzer die Interaktion mit dem Gitarreneffektpedal.
Beispielsweise können Benutzer das Effektgerät mithilfe eines Fußschalters (Footswitch) ein- und ausschalten. Darüber hinaus können sie mit dem Drehencoder (violetter Drehknopf) zwischen verschiedenen Effekten wechseln und somit die Multieffekt-Funktionalität nutzen.
Die Effektparameter, wie beispielsweise die Verzögerungszeit (Delay Time) und die Rückkopplung (Delay Feedback), können über die drei verbleibenden Potentiometer (schwarze Drehknöpfe) eingestellt werden.
Der aktuell ausgewählte Effekt wird auf dem LCD-Display angezeigt.