Several changes for generating the user manual.

pull/32/head
Holger Wirtz 4 years ago
parent db462cdca8
commit 9cb325b479
  1. 13
      doc/bin/gen_lcd_screen.sh
  2. BIN
      doc/images/manual-images/OperationElements.png
  3. 0
      doc/images/manual-images/Preset_Down.png
  4. 0
      doc/images/manual-images/Preset_Left.png
  5. 0
      doc/images/manual-images/Preset_Long_Press.png
  6. 0
      doc/images/manual-images/Preset_Push.png
  7. 0
      doc/images/manual-images/Preset_Right.png
  8. BIN
      doc/images/manual-images/Preset_Setting.png
  9. 0
      doc/images/manual-images/Preset_Up.png
  10. 0
      doc/images/manual-images/Push_and_Long_Press.png
  11. 0
      doc/images/manual-images/Volume_Down.png
  12. 0
      doc/images/manual-images/Volume_Left.png
  13. 0
      doc/images/manual-images/Volume_Long_Press.png
  14. 0
      doc/images/manual-images/Volume_Push.png
  15. 0
      doc/images/manual-images/Volume_Right.png
  16. 0
      doc/images/manual-images/Volume_Setting.png
  17. 0
      doc/images/manual-images/Volume_Up.png
  18. BIN
      doc/images/manual-images/left-enc-turn.png
  19. BIN
      doc/images/manual-images/left-enc-turn2.png
  20. BIN
      doc/images/manual-images/right-enc-turn.png
  21. BIN
      doc/images/manual-images/right-enc-turn2.png
  22. BIN
      doc/manuals/Build-Manual.pdf
  23. 331
      doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.md
  24. BIN
      doc/manuals/MicroDexed-User_Manual/MicroDexed-User_Manual.pdf
  25. 5
      doc/manuals/MicroDexed-User_Manual/build.sh
  26. BIN
      doc/manuals/MicroDexed-User_Manual/images/10_OperationElements_1.jpg
  27. BIN
      doc/manuals/MicroDexed-User_Manual/images/10_SoundBank_1.jpg
  28. BIN
      doc/manuals/MicroDexed-User_Manual/images/10_SoundBank_2.jpg

@ -2,7 +2,6 @@
COLOR="green"
TARGET_EXTENSION="jpg"
CHAR_PATH="${IMG_PATH}/LCD_characters_${COLOR}"
while [[ "$#" -gt 0 ]]; do
case $1 in
@ -22,7 +21,9 @@ then
exit 10
fi
if [ ! -e "${IMG_PATH}/${CHAR_PATH}" ]
CHAR_PATH="${IMG_PATH}/LCD_characters_${COLOR}"
if [ ! -e "${CHAR_PATH}" ]
then
echo "Cannot find path for character-images \"${CHAR_PATH}\""
exit 11
@ -30,7 +31,7 @@ fi
if [ ${BASE_IMG} ]
then
cp "${IMG_PATH}/MicroDexed_Panel/Rotate_1/${BASE_IMG}.png" /tmp/LCD_$$.png
cp "${IMG_PATH}/manual-images/${BASE_IMG}.png" /tmp/LCD_$$.png
else
cp "${IMG_PATH}/LCD_green.png" /tmp/LCD_$$.png
fi
@ -52,9 +53,9 @@ do
continue
else
special_flag="false"
if [ ! -e "${IMG_PATH}/${CHAR_PATH}/${special}.png" ]
if [ ! -e "${CHAR_PATH}/${special}.png" ]
then
echo "Cannot find \"${IMG_PATH}/${CHAR_PATH}/${special}.png\"."
echo "Cannot find \"${CHAR_PATH}/${special}.png\"."
c=" "
else
c=${special}
@ -74,7 +75,7 @@ do
c="dot"
fi
x=$( bc -l <<<"230 + ${xpos} * 30" )
composite -gravity NorthWest -geometry "+${x}+${y}" "${IMG_PATH}/${CHAR_PATH}/${c}.png" /tmp/LCD_$$.png /tmp/LCD_$$.png
composite -gravity NorthWest -geometry "+${x}+${y}" "${CHAR_PATH}/${c}.png" /tmp/LCD_$$.png /tmp/LCD_$$.png
fi
done
done

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 143 KiB

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Before

Width:  |  Height:  |  Size: 144 KiB

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

@ -4,13 +4,17 @@ fontsize: 16pt
geometry: a4paper,margin=2cm
---
# MicroDexed User Manual
![](../../images/MicroDexed-Logo.png)
# MicroDexed User Manual
Version 1.0 (June 2020)
## What it is
<div style="page-break-after: always"></div>
![](../../images/MicroDexed.png)
## What is MicroDexed?
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.
@ -21,12 +25,12 @@ To use MD, you need suitable hardware. For example [TeensyMIDIAudo (TMA)](https:
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 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 possible for 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.
The complete hardware build manual for the TMA-board can be found inside the [TMA-Build-Manual](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.
<div style="page-break-after: always"></div>
@ -34,7 +38,7 @@ The complete hardware build manual for the TMA-board can be found at [https://co
The normal controls for the user are arranged as follows:
![](../../images/MicroDexed.png)
![](images/10_OperationElements_1.jpg)
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:
@ -48,8 +52,9 @@ The __VOLUME__ encoder always has the following functions - no matter where you
* __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.
The __PRESET__ encoder has only two different permanent function:
* __Long-Press__ inside menu: This takes you to the sound/bank selection.
* __Long-Press__ inside voice/bank selection: Changing between voice and bank selection.
<div style="page-break-after: always"></div>
@ -61,45 +66,224 @@ __Long-Press PRESET__: Changes between voice and bank selection:
![](images/10_SoundBank_1.jpg)
__Turn PRESET left/right__: Change voice or bank (voices: 1-32, banks: 0-99):
![](images/10_SoundBank_2.jpg)
- [<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/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 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).
<div style="page-break-after: always"></div>
## Using MicroDexed
The individual menu items are described below. MD knows three different states:
* Voice/Bank selection
* Adjust volume
* Menu
After switching on, you are in the voice/bank selection. To enter the menu you have to press the volume encoder. You can return to the voice/bank selection by holding down the preset encoder. If you turn the volume encoder, the volume screen appears and you can see which value is set. After a few seconds the system automatically returns to the previous screen.
To select items in the menu, the preset encoder must be turned. On the right side you will see where you are in the menu list. You can select a menu item or jump to a submenu by pressing the preset encoder.
If you want to leave a menu point or change to a higher menu, the volume encoder must be operated.
__Hint__:
You can translate MD with different options and accordingly some features may or may not be available. This also depends on what kind of microcontroller you use. In this manual the standard options are used. These are:
* Microcontroller: Teensy-3.6 (240 Mhz overclocking)
* Teensy audio card (SGTL5000 based audio chip)
* USB-host port enabled
* *Mono-timbral* engine
If you use the *dual-timbral* engine, in many menus a small <img src="../../images/LCD_characters_green/small_2_inv.png" width="12"/> will appear (right of the <img src="../../images/LCD_characters_green/small_1_inv.png" width="12"/>) instead of the key. To switch between the two engines and change their parameters, simply press the preset encoder.
### Sound/Bank selection
The most important screen will be the selection for the sounds. The screen displays the selected bank number (top left) and the selected voice number (below). Next to the numbers are the corresponding names. The paramater, which is shown in square brackets, can be changed by turning the preset encoder.
MD can manage 100 banks (0-99) and 32 voices per bank, if you turn the mouse over the 32 voices, the first voice of the next bank will be loaded automatically (if possible). This happens the same way if you go lower than voice number 1.
To switch between voice and bank selection, the preset encoder must be pressed for a long time.
Next to the bank name is the symbol for the active engine. As described above, we use the *mono-timbral* engine for this manual, so the display next to it has a key symbol and is therefore not available. In this case we can not switch between the two instances by pressing the preset encoder.
If a MIDI note is detected, a note symbol is displayed below the corresponding instance as long as this note is active.
To enter the menus, the volume encoder must be operated.
### Voice Menu
The Voice menu is the most comprehensive menu. Here all functions related to sound generation are stored in different menus.
#### Audio Menu
The audio menu contains all functions that can lead to audible changes in any form.
##### Voice Level
By changing (and later saving) this value you can compensate for differences in volume between different sounds.
##### Panorama
The space in the stereo image can be adjusted here.
##### Effects
MD comes with some effects. Basically, each MD instance has its own resonant low-pass filter, (mono) Chorus and a separate (mono) delay (max. 250/500 ms). This is followed by the placement in the stereo image (see panorama) and a stereo reverb. A complete picture of the generation of the audio signal is stored in the [Repository](https://codeberg.org/dcoredump/MicroDexed/src/branch/master/doc/MicroDexed-Audio-FlowChart.png).
###### (Mono-)Chorus
A simple chorus created on the mix of the original signal and a pitch-modulated original signal. The effect is only audible when frequncy, depth and level are all somehow greater than 0.
Parameter:
* Frequency (0-10 Hz)
* Waveform (Triangle/Sine)
* Depth (0-100)
* Level (0-100)
###### (Mono-)Delay
The delay has a feedback loop and can be mixed into the original signal by means of level. Therefore time and level must be greater than 0.
Parameter:
* Time: (0-500ms for *mono-timbral* or 0-250 for *dual-timbral* (on Teensy-3.6))
* Feedback (0-100)
* Level (0-100)
###### Filter
The filter is a resonant 4-pole low-pass filter.
Parameter:
* Cutoff
* Resonance
###### (Stereo) Reverb (Master effect)
The reverb is a port of the freeverb. With the *mono-timbral* engine the parameter *Reverb Send* seems to be superfluous and can be set to 100. But if you use the *dual-timbral* version, you can set the amount of reverb send for each of the two sound generators separately. The reverb can only be heard when the roomzize and level, as well as *Reverb Send* are greater than 0.
Parameter:
* Roomsize (0-100)
* Damping (0-100)
* Level (0-100)
* Reverb Send (0-100)
###### EQ (Master effect)
The EQ is only active when using a Teensy audio shield (or SGTL5000 chip). It serves as a simple adjustment of the sound image.
Parameter:
* Bass (0-100)
* Treble (0-100)
##### Controller
###### Pitchbend
###### Other controllers (Modulation wheel/Aftertouch/Foot contoller/Breath controller)
##### MIDI
###### MIDI Channel
###### Lowest/Highest note
###### Send voice
#### Setup
##### Portamento
##### Polyphony
##### Transpose / Fine-tune
##### Mono-/Polyphonic
#### Internal
##### Note Refresh
##### Velocity
##### Engine
#### Oprator
#### Save voice
<div style="page-break-after: always"></div>
## The menu structure
### Load/Save
#### Performance
#### Voice config
#### Effects
#### MIDI
##### MIDI Recv Bank
##### MIDI Snd Bank
##### MIDI Snd Voice
<div style="page-break-after: always"></div>
### System
#### Stereo/Mono
#### MIDI Soft THRU
#### EEPROM Reset
<div style="page-break-after: always"></div>
### Info
## Tips and tricks
### Editing the voices
https://www.thisdx7cartdoesnotexist.com/
https://dx7.vstforx.de/
https://synthmata.com/volca-fm/
<div style="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
- 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
@ -131,9 +315,9 @@ __Long-Press PRESET__: Changes between voice and bank selection:
- Port. Gliss
- Port. Time
- Polyphony
- Transpose
- Fine Tune
- Mono/Poly
- Transpose
- Fine Tune
- Mono/Poly
- Internal
- Note Refresh
- Velocity Lvl
@ -167,80 +351,3 @@ __Long-Press PRESET__: Changes between voice and bank selection:
## encoder functions
### Left encoder
**push**: open menu / go up one level in menu hierarchy
**turn**: change master volume
### Right encoder
**push**:
* in menu: open submenu
* in preset selection: go to next option
**turn**:
* in menu: pick menu entry / change value
* in preset selection: change preset or bank
## preset selection
This is the main MicroDexed screen you will use during operation. You can change the currently active preset by turning the right encoder. The preset's name appears in the bottom LCD row. <br>
Presets are organised in banks. Each bank holds 32 presets. If you arrive at the last preset in the current bank and turn the right encoder even further, the first preset of the next bank will become active.<br>
You can switch between preset and bank selection by pushing the right encoder. The active selection is marked by square brackets. <br>
If you compiled MicroDexed to use two Dexed instances, each instance will use its own preset. Which instance you are selecting presets for can be seen in the LCD's top right corner. The active instance's number is displayed white-on-black.<br>
A small lock in the place of instance number 2 means that MicroDexed was compiled to use a single Dexed instance.<br>
A mirrored number in either place means that this instance is currently disabled (polyphony set to 0) and will not use CPU time.
## configuration menu
A note on instances:<br>
When setting parameters in this menu, pushing the right encoder switches between instance 1 or 2 if both are active.<br>
### 1. Voice
#### 1.1 Select
Selecting this entry opens the preset selection screen.
#### 1.2 Audio
##### 1.2.1 Voice Level
##### 1.2.2 Panorama
##### 1.2.3 Effects
**Chorus**<br><br>
**Chorus Frequency** This value controls the LFO frequency that modulates the Chorus. It is given in Hz.<br>
**Chorus Waveform** This sets the LFO modulator waveform for the Chorus. You can choose between sine and triangle wave.<br>
**Chorus Depth** This value sets the Chorus LFO modulator's amplitude.<br>
**Chorus Level** This value controls how much of the Chorus' output is added to the mix.<br>
**Delay**<br><br>
**Delay Time** The time between reflections (milliseconds).<br>
**Delay Feedback** The amount of signal that is fed back to the Delay (percent).<br>
**Delay Level** This value controls how much of the Delay's output is added to the mix.<br>
**Filter** Lowpass? Freq is 0-100?
**Reverb**<br>
Hint: Start by setting Roomsize to 30, Reverb Send to its maximum and Reverb Level to 50%. This should give you the smallest amount of noise. If the reverb sounds distorted when you play a loud preset, decrease Reverb Send until the distortion is gone, then adjust Reverb Level to your liking.<br>
**Reverb Roomsize** This influences how long the reverb will sound.<br>
**Reverb Damping** This controls how fast higher frequencies are filtered from the reverb sound.<br>
**Reverb Level** This value controls how much of the Reverb's output is added to the mix.<br>
**Reverb Send** This value controls how much of the Dexed's signal is fed to the reverb.<br>
#### 1.3 Controller
#### 1.4 MIDI
#### 1.5 Setup
#### 1.6 Internal
#### 1.7 Operator
#### 1.8 Save Voice
### 2 Load/Save
### 3 System
### 4 Info
#### 4.1 Tips and tricks
https://www.thisdx7cartdoesnotexist.com/
https://dx7.vstforx.de/
https://synthmata.com/volca-fm/

@ -4,6 +4,7 @@
LCDIMG="../../bin/gen_lcd_screen.sh --imgpath ../../images"
${LCDIMG} --baseimg Preset_Up --line1 "00 SONUS1 %small_1_inv%%key%" --line2 "01%bracket_open%ANLGSYN 1 %bracket_close%" --target images/10_SoundBank_1.jpg
${LCDIMG} --baseimg Preset_Long_Press --line1 "00 %bracket_open%SONUS1 %bracket_close%%small_1_inv%%key%" --line2 "01 ANLGSYN 1 %note%" --target images/10_SoundBank_2.jpg
${LCDIMG} --baseimg OperationElements --line1 "42%bracket_open%BANKNAME %bracket_close%%small_1_inv%%key%" --line2 "42 VOICENAME" --target images/10_OperationElements_1.jpg
${LCDIMG} --baseimg Preset_Long_Press --line1 "00%bracket_open%SONUS1 %bracket_close%%small_1_inv%%key%" --line2 "01 ANLGSYN 1 %note%" --target images/10_SoundBank_1.jpg
${LCDIMG} --baseimg Preset_Setting --line1 "00 SONUS1 %small_1_inv%%key%" --line2 "01%bracket_open%ANLGSYN 1 %bracket_close%" --target images/10_SoundBank_2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 76 KiB

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 76 KiB

Loading…
Cancel
Save