Eureka DAW

Document: | Eureka DAW
Author: | bsp
Date: | 18-Aug-2023

# 1 About

"Eureka" is a sampler, synth, plugin host, and multi-track recorder designed for low latency audio.
It is the audio companion app to the MIDI-only "Synergy" sequencer.

# 2 Features

- arbitrary number of instrument tracks
  - arbitrary number of "lanes" per track
  - alternative MPE, lane-per-channel (LPC), voice-round-robin (VRR), drum pad sampler (drum kit) modes
  - side chain inputs
  - mid / side processing
  - routing between lanes, tracks and outputs
    - arbitrary number of outputs per track and lane
  - track mod matrix
    - for modulating module parameters via MIDI
    - cubic bezier curve note velocity, pitchbend, pressure, and CC / RPN / NRPN controller shaping
    - note and velocity range filters
    - continuous controller filters
- built-in lane modules
  - sampler
  - delay
  - gain / pan / stereowidth
  - 3-band equalizer
  - mid / side conversion
  - (cross-track) sync (+- 100ms)
  - Audio to MIDI RPN
  - MIDI RPN to Audio
  - Idle detection
  - VST2 plugin
  - STFX plugin
- sampler
  - arbitrary number of instances
  - arbitrary number of samples
    - stored as `.wav` + `.esa` files
    - (optional) YAML export for Rossum-Electro Assimil8or eurorack sampler
  - up to 32 sample namespaces
    - e.g. for separating audio clips and drum kits from regular samples
  - seamless sample switching
    - via MIDI program change or RPN
  - extensive (per voice) mod matrix
    - up to 16 entries per voice
    - 121 sources
    - 197 destinations
    - log / lin / exp curve per entry
    - 4 scratch registers
    - 13 op modes per entry (add, mul, replace, blend, compare, step, ..)
    - support for 14 bit hi-res continuous controllers (CCs)
      - modwheel (CC#1), breath control (CC#2), foot control (CC#4), expression (CC#11)
  - arbitrary number of zones (layers) per sample
    - mono or stereo
    - note, velocity, modulation (e.g. modwheel) filters
    - "alt" groups
    - "mutex" groups
  - up to 32 voice buses
    - for routing audio between sample zones
    - sample zone cross modulation (RM, AM, FM, ..)
  - arbitrary number of sample loops per zone
    - pitch or time based number of repeats
    - oneshot, forward, backward, pingpong, xfade loop modes
    - loops can be selected and switched via MIDI and mod matrix
  - monophonic and polyphonic glide
    - time or pitch based
    - separate up / down settings
    - sample / envelope / LFO / modseq legato retrig settings
  - 1D / 2D wavetables
    - static cycle length (2..4096 frames)
    - dynamic, pitch-dependent cycle length ("lo-fi timestretch")
  - additive (re-)synthesis
    - realtime, up to 256 partials
    - configurable stereo spread
    - up to 8 realtime-interpolatable resynthesis parameter sets
    - partial bit and sample rate reduction
    - conversion to regular wavetables (export to sample clipboard)
  - 4x3 ASR cubic bezier envelopes per voice
    - modulatable attack / decay+sustain / release speeds and levels
    - loopable sustain section
  - 4 LFOs per voice
    - sine / saw up+down / triangle / pulse / noise shapes
    - configurable start phase (fixed or random)
    - delay and fade-in
    - oneshot and loop modes
    - global or per-voice
  - 4 mod sequencers per voice
    - oneshot and loop modes
    - slew
    - forward, backward, pingpong, random, random(no repeat) play modes
    - time, note on, note off, mod rise / fall / edge / zcross step modes
    - up to 16 patterns, selectable via MIDI / mod matrix
  - MIDI or threshold triggered sampling
    - polyphonization of monophonic (oscillator) sound sources
      - update rate is ~300Hz
  - sample start and loop point modulation
    - random, velocity-based, and / or mod matrix controlled
  - voice calibration tables
    - for (subtle) voice modulation
    - up to 6 lanes
  - per-voice plugins
    - free and open source STFX plugin format
    - filters, waveshapers, ring-modulation, distortion, oscillators, ..
  - Cycle software modular
    - "offline" sample synthesis
    - can also generate native code / realtime STFX voice plugins
- sample editor
  - cut / copy / paste / trim / fade-in+out / crossfade / invert / reverse / normalize / declick / ..
  - high quality resampling via SoX
  - undo / redo
  - snap to zero crossings or quarter notes (BPM based)
  - automatic region detection
  - automatic pitch detection
  - automatic loop point detection
  - `.wav`, `.8svx`, `.aiff`, `.aiffc`, `.au`, `.caf`, `.cdda`, `.cdr`, `.flac`, `.ogg`, `.opus`, `.sds`, `.txw`, `.voc`, `.w64` import
- sample import from field recorders
  - audition sample (regions) via keyboard or MIDI
    - oneshot or loop playback
  - copy selected samples to local folder
  - tested with Zoom H4n pro and Tascam DR-05x
- instrument and effect plugin host
  - VST2 (Windows, macOS)
  - STFX (Windows, macOS, Linux)
  - plugin browser(s)
  - patch browser(s)
    - import / export `.fxp` / `.fxb` (VST2)
  - generic parameter editors with filterable parameter selection
    - in addition to VST2 editor UIs
  - up to 32 MIDI-controllable parameter sets per module instance
    - abs and smooth interpolation modes
    - up to 5 parameter set groups per track
- multi-core rendering (optional)
  - automatic or explicit track CPU core assignment
- multi-track stem recording
  - `.wav` export
  - recorded audio (regions) can immediately be played via MIDI
    - "live capture" mode: record+autotrim incoming audio
  - various options for creating new multi-samples from recorded audio
- (not released, yet): stand-alone player library
  - up to 256 tracks
  - supports (almost) every sampler feature
  - supports procedural samples (Cycle)
  - supports (custom) STFX voice and track plugins

# 3 Prerequisites

Hardware:

- a PC running Windows 10 or higher
- or a PC or other computer running Linux (e.g Debian 12)
- or a Mac running macOS 10.12+ (x64) or 13.x+ (arm64)
- an audio interface capable of low-latency I/O

Software:

- Synergy sequencer

| For building custom STFX plugins from Cycle patches, a C compiler is required (e.g. Clang or GCC). Please see the "STFX plugin export: compiler command line" section in `eureka_config.tks` or the Cycle manual for installation details.

# 4 Installation

1. install Synergy
2. open the "stop button" menu and select `Start "Eureka" audio host..` to launch the application
3. in Eureka, open the preferences dialog ("Prefs.." button), and configure the audio device, sample rate, paths, .. as required. The settings will be saved to `eureka_config_local.tks` when the preferences dialog is closed.

## 4.1 MIDI loopback (deprecated)

| since v20230803, Synergy and Eureka come with a built-in virtual MIDI driver ("LocalMIDI") so the following MIDI loopback configuration is not necessary anymore.

1. install MIDI loopback device driver (e.g. loopMIDI on Windows, or IAC driver on macOS)
2. add two loopback devices named `remote_audio` and `remote_seq`
3. add four loopback devices named `vst_a`, `vst_b`, `vst_c`, `vst_d` (optional: also add `vst_e`..`vst_h`)
4. set `b_enable_localmidi = false;` in both `synergy_config.tks` and `eureka_config.tks`

| on macOS, launch the `Audio MIDI Setup.app`, select `Window ⇒ Show MIDI Studio`, double click the IAC driver (red), set Device Name to "" (empty string), then add the `remote_audio`, `remote_seq`, `vst_a`, `vst_b`, `vst_c`, `vst_d`, `vst_e`, `vst_f`, `vst_g`, `vst_h` MIDI ports, and click "Apply".

## 4.2 optional

1. open `eureka_config.tks` in a text editor
2. adjust `b_minimal_startup` variable (`false`=enable VST/voiceplugin/samplecache scans)
3. adjust `rootpath` variable
4. adjust `audiotrack_wav_rootpath` variable
5. adjust `exported_samples_wav_rootpath` variable
6. adjust `project_samples_wav_rootpath` variable
7. adjust `sample_rootpath` variable
8. adjust `b_force_single_thread` variable (set to `false` to enable multicore rendering (default on macOS))
9. adjust `vst_paths` variable
10. adjust `atrk_rec_skip_num_frames` (latency compensation) as required (default=-80)

## 4.3 audio input and output channel aliases

1. open `eureka_config_local.tks` in a text editor
2. edit `audio_in_aliases` and / or `audio_out_aliases` arrays

# 5 Keyboard Shortcuts

| shortcuts assume a US keyboard layout (unless stated otherwise).

## 5.1 Global

lshift-q | quit
RCTRL | toggle recording
numpad ENTER \= |
BACKSPACE | stop all voices
q | toggle scope
SCROLL-LOCK BACKQUOTE | hold to play 261.63Hz (middle C) reference tone

Global keyboard shortcuts

## 5.2 "Audio" page

n | Create new audio track
SPACE | Start / Stop audio track replay
PAGEUP | Select previous audio track
PAGEDOWN | Select next audio track
lalt-i | Show sample import dialog
lalt-l | Load sequencer project
lctrl-2 | show Project page
lctrl-3 | show Track page
lctrl-5 | show Samples page

Audio Page keyboard shortcuts

## 5.3 "Samples" page

F2 | edit sample or zone name (when table has keyboard focus)
F9 lctrl-9 | toggle (wav) sample browser
F10 lctrl-0 | toggle zone drumpad view
F11 | show synth dialog (Cycle)
lctrl-TAB | toggle zone table model (show names or velocity/mod ranges)
1 | select all zones
2 | select previous zone
3 | select next zone
4 | edit previous ModSample OR previous sample pad of parent track
5 | edit next ModSample OR next sample pad of parent track
lctrl-1 | show Audio Tracks page
lctrl-2 | show Project page
lctrl-3 | show Track page

Samples Page keyboard shortcuts
..when samples table has keyboard focus:

F2 | edit sample name
INSERT | create new sample
lshift-INSERT | clone selected sample
DELETE | delete selected sample
lctrl-DELETE | delete selected sample without confirmation
lctrl-UP | move selected sample up
lctrl-DOWN | move selected sample down

Samples Page Sample Table keyboard shortcuts
..when zone table has keyboard focus:

F2 | edit zone name
INSERT | create new zone
lshift-INSERT | clone selected zone
lctrl-INSERT | clone zone synth (Cycle)
DELETE | delete selected zone
lctrl-DELETE | delete selected zone without confirmation
lctrl-UP | move selected zone up
lctrl-DOWN | move selected zone down

Samples Page Zone Table keyboard shortcuts
..when voice plugins table has keyboard focus:

F12 | rescan+reload voice plugins
DEL | set current plugin slot type to "-"

Samples Page Plugin Table keyboard shortcuts

## 5.4 "Project" page

WHEEL UP | select previous track
WHEEL DOWN | select next track
cursor keys | select track
lctrl WHEEL UP | decrease track size
lctrl WHEEL DOWN | increase track size
1..6 | select track size 1..6
e | edit focused track
f | edit first ModSample or ModVST of focused track
d | mute focused track
s | solo focused track
n | add new track
ctrl-n | add new track and edit it
lshift-n | add new audio track for selected MIDI track and edit it e.g. "drums" ⇒ "a_drums"

Project Page keyboard shortcuts

## 5.5 "Track" page

LEFT | select previous track
RIGHT | select next track
F3 | show/hide plugin browser
RETURN | edit first or last selected mod
lctrl-TAB lctrl-r | toggle modmatrix / lanes view (alt key: F4, lctrl-4)
lctrl-w | sync mods on other lanes with last selected mod
lctrl-h | sync other lanes with last selected lane
lctrl-l | load track patch
lctrl-s | save track patch
lctrl-q | hide plugin browser or show Instrument (or STFX) plugins
lctrl-f | show Effect plugins
lctrl-e | show track patch variations table
lctrl-t | enable experimental (resampler) menu items / keys
lctrl-1 | show Audio Tracks page
lctrl-2 | show Project page
lctrl-3 | show Track page

Track Page keyboard shortcuts
lane modules:

LMB hold click | show (VST) patch browser
lshift-LMB click | show generic param editor instead of regular UI
lalt-LMB click | show parameter set editor

Track Page keyboard shortcuts
when VST editor window is focused:

ESC | hide plugin window
` | sync MPE/LPC/VRR mirror mods (^ on german kbd)
F12 | add mod matrix entry for last touched param
RCTRL | toggle audio(-track)recording

VST Window keyboard shortcuts

## 5.6 Sample View

Key Sequence | Description
--- | ---
lctrl-lshift-SPACE | Show all
lctrl-SPACE | Fit selection to window or show all
lctrl-lshift-a | Select none
LMB dblclick | Set selection to highlighted area or Select none
lctrl-a | Select all / show all
lctrl-b | Declick selection end (512 sample frames fade out)
lctrl-lshift-b | Declick selection start (512 sample frames fade in)
lctrl-c | Copy selection to clipboard
lctrl-lshift-c | Append selection to clipboard
RETURN | Append selection to clipboard
lctrl-d | Silence selection
lctrl-lshift-d | Surround selection with silence (for transient detection tools)
lctrl-e | (partially handled by SampleView) Export selection to WAV (send event)
lctrl-lshift-e | (partially handled by SampleView) Multi-Export regions to WAV (send event)
lctrl-f | Fade-out selection
lctrl-lshift-f | Fade-in selection
lctrl-g | Toggle show highlight
lctrl-h | Copy selection to highlight (modifies either sampleoff/len or current loop off/len)
lctrl-i | Toggle show RMS
lctrl-j | Toggle show regions
lshift-j | Toggle RMS autoshop mode
lctrl-lshift-j | Toggle autochop dialog
lctrl-lshift-i | Toggle show samples
lctrl-k | Delete left channel
lctrl-lshift-k | Delete right channel
lctrl-lshift-l | Clear undo/redo history
lctrl-m | Convert to mono
lctrl-lshift-m | Convert to stereo
lctrl-n | Normalize selection
lctrl-lshift-n | Normalize regions
lctrl-o | Amplify selection (show dialog)
lctrl-p | Phase-invert selection
lctrl-q | Select next region, or select next cycle (in cycle-edit mode) (same as cursor RIGHT)
lctrl-lshift-q | Select previous region, or select previous cycle (in cycle-edit mode) (same as cursor LEFT)
lctrl-r | Reverse selection
lctrl-lshift-r | Crossfade selection
lshift-r | Loop-xfade selection. Needs 128 frames before selection start.
lctrl-s | Tighten selection (via transient detection)
lctrl-lshift-s | Show SoX / Rubberband dialog
lctrl-t | Truncate to selection
lctrl-lshift-t | Auto-trim (select all, tighten selection, trim)
lctrl-v | Paste clipboard at end of selection
lctrl-lshift-v | Replace selection by clipboard
lshift-v | Add clipboard to selection (mix)
lctrl-w | Cut selection to clipboard
lctrl-y | Undo ('z' on german kbd)
lctrl-lshift-y | Redo ('z' on german kbd)
lctrl-z | Toggle snap-to-zero-crossing mode ('y' on german kbd)
lshift-z | Toggle cycle edit mode (same as MMB click) ('y' on german kbd)
UP | Zoom in
DOWN | Zoom out
LEFT | Select previous region, or select previous cycle (in cycle-edit mode)
lctrl-LEFT | Scroll left
lctrl-lshift-LEFT | Move region left (+add silence around region)
RIGHT | Select next region, or select next cycle (in cycle-edit mode)
lctrl-RIGHT | Scroll right
` | Toggle freedraw mode (^ on german kbd)
lctrl-lshift-RIGHT | Move region right (+add silence around region)
DELETE | Delete selection
HOME | Move selection start to 0
END | Move selection end to end of waveform Press twice to move selection start to end of wave
END | Set selection start to end of selection or end of wave
lshift-END | Expand selection end to end of waveform Press twice to move selection start to end of wave
WHEEL UP/DOWN | Zoom in/out Select previous/next cycle (in cycle-edit mode) Select previous/next region (when selection exceeds max cycle length)
lctrl + WHEEL | Zoom vertically
lctrl + WHEEL | Zoom vertically in cycle mode
RMB + MOUSEMOVE | Scroll left/right
LMB + MOUSEMOVE | Mark region / autoscroll
RMB hold | Show popup menu
MMB | Cycle bpm/marker snap modes
LMB click in upper area | Set marker
RMB click in upper area | Delete marker
lctrl + LMB click | Toggle marker

Sample View keyboard shortcuts

# 6 MIDI implementation

## 6.1 vst_a .. vst_h ports

- can be assigned to instrument tracks
- events will be forwarded to all lanes / modules matching the event's MIDI channel and module's mod matrix filter
  - in default track mode: sent to all track lane-modules
  - in LPC track mode: sent to the lane(-modules) matching the event's MIDI channel
    - "Lane Offset" determines which lane is mapped to MIDI channel #1
  - in MPE track mode: sent to the lane(-modules) matching the event's MIDI channel.
    - "Master channel" events (usually on MIDI channel #1) are sent to all MPE lanes
    - "Lane Offset" determines which lane is mapped to the first available MIDI channel (usually MIDI channel #2)
  - in drum pad sampler mode: sent to all track lane-modules. Notes will trigger the matching drum pad.
    - pitchbend and modwheel / breathctl / footctl / volume / balance / pan / expression / brightness / general 1..8 performance CCs (and All Notes Off CC) are forwarded to all pad sample players
    - MIDI notes C-3..G-3 (36..43) select the currently active drum kit variation

## 6.2 remote_audio port

- primarily used for receiving SysEx requests / replies from the "Synergy" sequencer process
- context-sensitive MIDI event routing
  - the current instrument track can be played via the `remote_audio` MIDI port (in addition to its main MIDI port `vst_a`..`vst_h`)
  - the current sample (on the sample page) can be played via the `remote_audio` MIDI port, unless the sample page was entered by clicking on a `ModSample` instance
  - the current audio track (on the start page) can be played via the `remote_audio` MIDI port
- can also be used for receiving direct module parameter changes (i.e. without track or sampler mod matrix mapping)
  - see "Remote" tracker instrument parameter type in "Synergy"

| in Synergy, the `remote_audio` device is also used for context-sensitive routing of MIDI events (e.g. in synth editors)

## 6.3 remote_seq port

- used for sending SysEx requests / replies to the "Synergy" sequencer process

## 6.4 Module specific MIDI events

### 6.4.1 Sampler

- `RPN_SMP_OFFMS_LO` (88), `RPN_SMP_OFFMS_HI` (89) set the sample start offset in milliseconds
  - used for audio clips in Synergy Arranger and for "audio patterns" in Synergy Tracker
- `RPN_SMP_UID` (90) selects a sample by its unique id
  - also used by Synergy Arranger + Tracker
  - can be used as an alternative to MIDI program changes
- pitchbend, channel+poly pressure, and performance controller CCs 1/33 (modwheel), 2/34 (breath control), 4/36 (foot control), 11/43 (expression pedal), 7 (volume), 8(balance), 10(panorama), 16..19 (general purpose 1..4), 74 (brightness), 80..83 (general purpose 5..8) can be mapped in the sampler mod matrix
  - the performance CCs support 7bit (MSB) and 14bit (MSB+LSB) precision
- CC#64 (sustain pedal) sustains all pressed notes (when value is >= 64)
- CC#66 (sostenuto pedal) sustains only the currently pressed notes (when value is >= 64)
- CC#121 (controller reset) resets all performance controllers
- CC#127 (all notes off) stops all voices

### 6.4.2 VST2 and STFX plugins

- `RPN_PARAMSET_1..5` (70..74) select a parameter set for group 1..5 (without interpolation)
  - value range is 1..32
- `RPN_PARAMSET_SMOOTH_1..5` (75..79) select a parameter set for group 1..5 (with interpolation)
  - value range is 0..16383
  - 512 fractional steps between two parameter sets
  - values 15872..16383 interpolate between parameter sets 32 and 1
- all remaining MIDI events will be forwarded to the plugin

# 7 Miscellaneous notes

## 7.1 plugins

- Plugins are instanced by drag'n'dropping them from the plugin browser
- plugin patches named `init` will be auto-loaded after plugin instantiation
  - `init_delay` will be loaded when the plugin filter is set to "delay", `init_reverb` when it is set to "reverb", and so on
- Plugins instances are deleted by drag'n'dropping them back to the plugin browser

## 7.2 tracks page

- one way to edit an instrument track is to right-click the track's title bar
- the first sampler instance of an instrument track can be edited by middle-clicking the track's title bar
- if a track named "master" exists, a new track's audio output will be auto-routed to it

## 7.3 current track page

- a new `ModSample` instance can be created by right clicking on an empty lane mod slot and choosing `Builtin→Sampler`
- a track's mod matrix will always (initially) display the last highlighted lane module (mouse over)

## 7.4 projects

- Eureka projects will be saved when saving projects in `Synergy` (hold-clicking `Save` shows an emergency save dialog)
- to load a project, load a `Synergy` project, then click `Load` on the Eureka start page (hold-clicking `Load` shows a load dialog which you will most likely never need to use)

# 8 Files and Directories

## 8.1 Project

When a project is saved in Synergy, it will also be saved in Eureka.
The Eureka project name is determined by the Synergy project name.
For example, when the Synergy project is named `test`, the following Eureka project files and directories will be written:

    mProjects/eureka_data/projects/test.epr
    mProjects/eureka_data/projects/test/
    mProjects/eureka_data/projects/test/samples/
    mProjects/eureka_data/projects/test/tracks/
    mProjects/eureka_data/projects/test/exported_samples/

### 8.1.1 samples

`samples/` contains the `.wav` files for the samples along with the `.esa` sampler patches, e.g.

    samples/mysample.esa
    samples/mysample.wav

### 8.1.2 tracks

`tracks/` contains the `.wav` files for the "audio tracks" (stems and scratchpads).

### 8.1.3 exported_samples

`exported_samples/` contains the `.wav` files exported in the (Audio page) sample editor via the `Export Selection` and `Multi-Export Regions` context menu items.

## 8.2 Library

### 8.2.1 samples

The sample library path is configured in the `Prefs` dialog or by editing `eureka_config_local.tks` (`sample_rootpath`).
By default, it points to

    mProjects/samples/

| the sample library scan result is stored in `samplecache.dat`

| it is not recommended to point this directory to huge 3rd party archives. Rather put your favourites and own samples in there.

| other samples can be imported into a project from any drive via drag'n'drop

| the library source path will be preserved when importing samples from the library. this allows the sample to be later saved back to the library again

#### 8.2.1.1 user samples

The name of the user sample library directory (relative to the sample library path) is configured in the `Prefs` dialog or by editing `eureka_config_local.tks` (`sample_userpath`).
Before changing this setting, make sure that the corresponding directory exists.
For example, when the user sample path is set to `bsp`, the following directories should exist:

    mProjects/samples/bsp/
    mProjects/samples/bsp/drumkit/

##### 8.2.1.1.1 drum kits

The `drumkit/` directory (within the user sample path) contains patches and samples (`.edk`, `.wav`, `.esa`) for tracks that are set to `Drum Pad Sampler` mode.
Each drum kit is stored in a subdirectory, i.e. the example drum kit `808_95` is associated with the following files and directories:

    mProjects/samples/bsp/drumkit/808_95.edk
    mProjects/samples/bsp/drumkit/808_95_bd.esa
    mProjects/samples/bsp/drumkit/808_95_bd.wav
    mProjects/samples/bsp/drumkit/808_95_ch.esa
    mProjects/samples/bsp/drumkit/808_95_ch.wav
    mProjects/samples/bsp/drumkit/808_95_sd.esa
    mProjects/samples/bsp/drumkit/808_95_sd.wav

| a unique sample namespace should be assigned to drum kits and drum kit samples in order to distinguish them from other samples. The `From Kit` utility function creates / assigns a namespace based on the drum kit's name. `To pads` assigns the selected namespace to all drum kit samples uniquely referenced by the drum kit (and its variations)

### 8.2.2 Track patches

Track patches (`.epa` files) are stored in the `patches/` directory, which, by default, points to

    mProjects/eureka_data/patches/

Track patches contain the module, mod matrix, and output setups for all track lanes.

| plugins and samples in track patches are stored by reference, i.e. they must exist in the library when the patch is loaded. Samples must be saved to the library (`Save As..`) before saving the track patch (via the `Save` button on the `Current Track` page)

| a track patch may contain an arbitrary number of variations. By default, a new variation is created each time the patch is saved (see `Auto-create track patch variations` setting in the `Prefs` dialog which is saved in `eureka_config_local.tks`)

### 8.2.3 VST plugins

#### 8.2.3.1 plugin paths

The VST plugin paths are configured in `eureka_config.tks` (`vst_paths`).

| the VST scan result is stored in `vstcache.dat`. Eureka will incrementally scan for added / removed plugins during startup.

#### 8.2.3.2 fxp / fxb patches

VST patches are stored in the `vstpatch_rootpath` which, by default, points to

    mProjects/eureka_data/vst_patches/

| the patch folder contains (auto-created) subdirectories (one per plugin)

### 8.2.4 STFX plugins

STFX plugins are located in the `voice_plugins/` application subdirectory.

#### 8.2.4.1 patches

STFX patches are stored in the `stfxpatch_rootpath` which, by default, points to

    mProjects/eureka_data/stfx_patches/

| the patch folder contains (auto-created) subdirectories (one per plugin)

# 9 Table of Contents

Document created on 18-Aug-2023 13:12:27