Settings leaflet (explained)

Gecho v2 Settings leaflet explained

The leaflet that you received with your unit contains many settings and it is often not obvious from the name alone what every one of them does and how to use it. Please check this detailed explanation, and if something is not clear, feel free to ask in the comments below or on the forum.

Settings marked as WIP (work in progress) may not be implemented in your current firmware version yet. To avoid confusion and need for multiple printed versions of the manual, the place for these settings has been reserved.


Buttons B3 browses through delay lengths, B4 selects input or a combination of. The current option is indicated by red LEDs in a pattern that should be easy to recognize.

The odd 13k samples delay is there because it is originally used by Dekrispator on STM32F4 platform, it is selected by default when this channel runs (but it can be switched to any other delay, or off - just like in any other channel).

Input levels

By holding buttons 3 or 4 you can decrease or increase input level. Internally this works in two different ways, depending on whether the AGC (automatic gain control) is enabled or not. If yes (and this is a default setting), buttons 3 and 4 adjust "AGC Max Gain" parameter, as if you changed it in the settings menu, but the resulting level is not "remembered" (not stored in persistent memory) and will be cleared at reset or power off. In case the AGC is disabled, these two buttons are controlling the gain at codec input amplifier (PGA). You can find details in this technical datasheet for the TLV320AIC3104 codec chip used in v2 Gecho.

When you select line-in without anything plugged in, you will hear buzzing - that's normal. The AGC (enabled by default) will try to amplify the signal by up to 50dB - and when there is no signal, the interference and noise of empty connector or a loose cable will be amplified (signal lines act like antennas so they naturally pick up surrounding electromagnetic waves).

You can disable the AGC or set it to a lower level using "AGC Max Gain" in In-play Settings and/or Configuration Settings "AGC level / off". The settings you adjust in the menus are stored in persistent memory (so they are not lost during power off, but can be cleared using channel 4321). The settings accessible during play such as volumes, input levels, input select - also usually stored too (except the input levels as they are likely to require adjustment from channel to channel anyway).

The defaults are stored in "config file" that is located in flash memory on board. They can be adjusted by downloading the config.txt to a SD card using service menu or by running channel 4222, editing the file, and re-uploading it back to flash (service menu again). The input levels are represented by parameters AGC_ENABLED, AGC_TARGET_LEVEL and AGC_MAX_GAIN.


To access this menu, you need to short press SET while idle (nothing plays, RDY led blinks slowly). When four orange LEDs start blinking, short press one of the four buttons (the related orange LEDs will stay lit up). Then you can press any of the four buttons to adjust the respective setting. When done, you can either press SET again and select another sub-menu, or press RST to exit. The unit may restart automatically on exit if the setting that you adjusted requires this.

All LEDs off: This setting is useful if you want to use Gecho in darkness and the LEDs emit too much light, or maybe if you want to conserve some energy. Once you disable them, you won't be able to see what you are doing. To switch them back easily you can either press SET-B1-B1 or key in 4321-SET which will clear all persistent settings.

IRS or Accelerometer: Switches between infra-red proximity sensors (default) and accelerometer. The same can be achieved using channels 4444 and 3333. This should be easy to remember, as there are 4 IR sensors and the accelerometer works in 3D.

Acc. axis inversion: Allows to reverse any of the X-Y-Z axes individually

Acc. orientation: Allows to swap or shift axes, so you can replace any axis for any other in order to achieve meaningful responses - this may be useful if your unit is a DIY kit in a custom enclosure.

AGC level / off: Sets AGC (automatic gain control) target level, or disables it. Cycles through values of -5dB, -8dB, -10dB, -12dB, -14dB, -17dB, -20dB, -24dB and off.

Auto power off: Configures timeout for automatic power-off, from 10 to 80min (default is at 60min). Red LEDs indicate selected value (x10).

SD interface speed: Allows to change the SD card clock speed between 40MHz (default) and 20MHz. May be useful for older cards.

Sampling rate: Allows to set default sampling rate, that will be used by most channels, but some channels will ignore it as they cannot run at an arbitrary rate. You probably don't ever need to change this. Cycles through values of 50.780k (default), 44.1k, 32k, 24k and 22.050k.

MIDI/Sync mode: Cycles through following settings:

  • IN_OUT: clock derived and chords captured from MIDI if signal present, chords transmitted while playing (default)
  • IN: clock derived and chords captured from MIDI if signal present, nothing transmitted
  • OUT: chords transmitted via MIDI while playing, no clock sent, incoming signal ignored
  • MIDI_CLOCK_OUT: chords and clock transmitted via MIDI while playing
  • SYNC_IN: clock derived from sync if signal present, CV ignored
  • SYNC_OUT: clock transmitted via sync while playing, CV not sent
  • SYNC_CV_IN: clock derived from sync if signal present, CV used if channel supports it
  • SYNC_CV_OUT: clock transmitted via sync while playing, CV sent if channel generates it
  • OFF: MIDI, sync or CV not used

These options are partially WIP, clock from either MIDI or Sync inputs is captured but not yet meaningfully used, the same for CV inputs. Most channels react to MIDI data from keyboard, pitch bend and continuous controller.

MIDI Polyphony: Cycles through following settings:

  • COMBINED: 3 keys pressed are considered a chord, one key will spread up and down an octave for richer sound and easier playing (default)
  • CHORD: last 3 pressed keys are considered a chord, each one is released at note off
  • SINGLE_NOTE: the last pressed key fills entire chord - 3 times the same note, and is released at note off
  • OCTAVE_UP_DOWN: the last pressed key fills entire chord, shifted up and down by an octave, and is released at note off
  • SUSTAIN_CHORD: last 3 pressed keys are considered a chord, and will sustain after note off
  • SUSTAIN_SINGLE_NOTE: last pressed key fills entire chord - 3 times the same note, and will sustain after note off
  • SUSTAIN_OCTAVE_UP_DOWN: last pressed key fills entire chord, shifted up and down by an octave, and will sustain after note off

MIDI RX channel: [WIP] reserved setting, for now everything is received on channel 1.

MIDI TX channel: [WIP] reserved setting, for now everything is sent on channel 1.

MIDI aftertouch: [WIP] reserved setting, for now aftertouch information is not used.

MIDI cont. controller: [WIP] reserved setting, for now the default controller is 1.


To access this menu, you need to press SET+Bx combination (that is, use the SET button as if it was a shift key on the computer: hold it and then short press one of the four buttons). An orange LEDs will glow to indicate which menu you've selected (with the exception of the last one, SET+B4, as there orange LEDs indicate sensor levels which are being controlled by that menu). You can also press SET again, while some of these options is active, to move on to the next one, and eventually exit the main menu.

AGC Max Gain: Sets AGC (automatic gain control) maximum gain. Default value is 32dB, range is up to 50dB, in 6dB steps (as defined in "config file"). Holding either button will reset the value to its default. This setting controls AGC behaviour together with target level setting, found in the main menu. It can be temporarily adjusted simply by holding buttons 3 and 4 during play (see the "Input Levels" paragraph above for detailed explanation).

Analog Volume: This volume parameter is applied between DAC and output amplifier. Controlling the volume is usually sufficient by holding buttons 1 or 2 during play (which adjusts volume in DAC digitally) but if you need a wider range then this control is useful. Default value is -6dB, range is from -50dB to 0dB, in 1dB steps (as defined in codec.h).

Bass / Treble: Adjust equalizer curve. Both sides cycle through values from -9dB to 9dB in 3dB steps. Holding the respective button resets the option to its 0dB default.

Tempo: Adjust global tempo, it will affect most channels (those where the sound is generated in patterns). The range is from 10BPM to 330BPM in 5BPM steps (as defined in "config file"). Holding either of the buttons resets tempo to the default 120BMP.

Transpose: This affects pre-programmed songs and also incoming MIDI data. There is no imposed limit to the range but extreme values will produce out-of-range notes. Holding either of the buttons resets the transpose back to zero.

Tuning: This affects filtered channels (those that use subtractive synthesis). The range is +/-200 cents in 10 cents steps (as defined in "config file"). Holding button 3 sets the tuning to 432Hz, button 4 sets it to 440Hz (default).

IR Sensors Override: This option is useful if you need to lock any of the sensors at a certain level, for example because you need your hands elsewhere. While in this menu, simply press one of the buttons multiple times to lock the related sensor at a desired level, or cycle back to the unlocked state. Holding a button for longer will release locks on both sensors at the respective side.