MicroDexed (also called MD) is a software which runs on a Teensy(-3.6/4.x) microcontroller. It simulates a well know 6 operator FM synthesizer with some additions (like effects) and is controlled and mostly programmed via MIDI. The sound engine is based on [Dexed](https://github.com/asb2m10/dexed), a famous open-source VST plugin.
## Requirements
To use MD, you need suitable hardware. For example [TeensyMIDIAudo (TMA)](https://codeberg.org/dcoredump/TeensyMIDIAudio/src/branch/master/Rev-1.8) was developed directly for MD. The schematics and layouts are open-source, so you can easily build a TMA board. You can also build it on a stripe grid board or use completely different variants - it's up to you how you build the hardware. Another option (with a few extensions) is the [Teensy Guitar Audio Shield](http://blackaddr.com/products/).
Basically your MD "board" needs the following:
* I2C connector for connecting a LCD display (software is written for a 2*16 character display, but a bigger one should do also).
* 2 Encoders (for each encoder one digital input for the button and two digital inputs for the encoder directions).
* A DA converter supported by Teensy (something like a "audio shield", e.g. the Teeensy audio shield, or (the simplest way) you can use the 12bit DA output pins of the Teensy-3.6 (not possiblefor Teensy-4.x!)).
* "A way to get MIDI into the Teensy", like the onboard USB port (will not work for USB-MIDI-keybords, because it is not a host port!), the USB-Host port (with soldering a header) or external IO-components for DIN-MIDI.
* A small FAT32 formated SD card.
* The Arduino-IDE and TeensyDuino for compiling and uploading the program code (tested with Arduino-1.8.12 and TeensyDuino-1.52).
The complete hardware build manual for the TMA-board can be found at [https://codeberg.org/dcoredump/TeensyMIDIAudio/src/branch/master/Rev-1.8/Build-Manual/TMA-Build-Manual.pdf]. So for now we expect that you have a running hardware with installed MD software.
<divstyle="page-break-after: always"></div>
## Operating elements on the front
The normal controls for the user are arranged as follows:
![](../../images/MicroDexed.png)
If you decide to do the arrangement differently this is no problem. You only have to remember how the encoders are assigned to the function:
* Left encoder is named __VOLUME__
* Right encoder is named __PRESET__
### Permament encoder functions
The __VOLUME__ encoder always has the following functions - no matter where you are in the menus:
* __Turn left/right__: Change the volume. The volume-change-screen appears when turing and disapears after a short time and you get back, where you left off.
* __Long-Press__: A MIDI panic is triggered and all voices are muted.
* __Short-Press__: Back (from the selected menu-item or up to the parrent menu)
The __PRESET__ encoder has only one permanent function:
* __Long-Press__: This takes you to the sound/bank selection.
<divstyle="page-break-after: always"></div>
## Quick start
On a freshly installed MD the screen should greet you with the sound/bank selection. The volume is set to 80%.
![](images/10_SoundBank_1.jpg)
* __Long-Press PRESET__: Changes between voice and bank selection.
* __Turn PRESET left/right__: Change voice or bank (voices: 1-32, banks: 0-99)
- [<img src="../../images/LCD_characters_green/small_1_inv.png" width="12"/>](../../images/LCD_characters_green/small_1_inv.png) indicates that you are using timbre 1.
- [<img src="../../images/LCD_characters_green/key.png" width="12"/>](../../images/LCD_characters_green/key.png) indicates that you currently use the monotimbral engine.
- [<img src="../../images/LCD_characters_green/bracket_open.png" width="12"/>](../../images/LCD_characters_green/bracket_open.png)[<img src="../../images/LCD_characters_green/bracket_close.png" width="12"/>](../../images/LCD_characters_green/bracket_close.png) are showing which parameter do you currently edit with the __PRESET__ encoder.
- [<img src="../../images/LCD_characters_green/note.png" width="12"/>](../../images/LCD_characters_green/note.png) below the timbre symbol(s) indicates that there was an MIDI event (if using a Teensy -4.x different height bars (depending on velocity) are displayed per timbre).
### Sound/Bank selection
<divstyle="page-break-after: always"></div>
## The menu structure
- Voice
- Select
- Audio
- Voice Level
- Panorama
- Effects
- Chorus
- Waveform
- Depth
- Level
- Delay
- Time
- Feedback
- Level
- Filter
- Cutoff
- Resonance
- Reverb
- Roomsize
- Damping
- Level
- Reverb Send
- EQ
- Bass
- Treble
- Controller
- Pitchbend
- PB Range
- PB Step
- Mod Wheel
- MW Range
- MW Assign
- MW Mode
- Aftertouch
- AT Range
- AT Assign
- AT Mode
- Foot Ctrl
- FC Range
- FC Assign
- FC Mode
- Breath Ctrl
- BC Range
- BC Assign
- BC Mode
- MIDI
- MIDI Channel
- Lowest Note
- Highest Note
- Send Voice
- Setup
- Portamento
- Port. Mode
- Port. Gliss
- Port. Time
- Polyphony
- Transpose
- Fine Tune
- Mono/Poly
- Internal
- Note Refresh
- Velocity Lvl
- Engine
- Operator
- Save Voice
- Load/Save
- Performance
- Load Perf.
- Save Perf.
- Voice Config
- Load Voice Cfg
- Save Voice Cfg
- Effects
- Load Effects Cfg
- Save Effects Cfg
- MIDI
- MIDI Recv Bank
- MIDI Snd Bank
- MIDI Snd Voice
- System
- Stereo/Mono
- MIDI Soft THRU
- EEPROM Reset
- Info
<divstyle="page-break-after: always"></div>
## encoder functions
### Left encoder
**push**: open menu / go up one level in menu hierarchy