Emergence1
by Daniel Gergely 
v1.0.2
https://daniel-gergely.itch.io/
https://www.patreon.com/daniel_gergely


Emergence occurs when an entity is observed to have properties its parts do not
have on their own, properties or behaviors which emerge only when the parts
interact in a wider whole.

This plugin is a real-time granulator. It continuously records the input signal
into a buffer. The content of the buffer is played back as many short pieces of
sound called grains. Up to 600 grains can be generated in 4 streams, each having
it's own set of parameters that control grain generation.

A single grain is not that interesting. The most exciting things happen when
hundreds of overlapping grains play together, creating anything from complex
delay patterns to strange noises to beautiful layered soundscapes.


# Features:

- 4 grain generation streams with independent parameters
- Modulation system with many modulation sources:
    LFOs, Macros, Audio Input/Output and parameter randomization
- High quality grain pitch transposition (+/- 24 semitones)
- ADSR controls for shaping grain envelopes
- Synchronize time based parameters to host tempo/beat
- Built-in preset manager
- Up to 600 grains (depending on your CPU)
- Freeze buffer contents
- Built-in help (hover over controls and see text at the bottom)
- Resizable UI
- Collapsible UI sections to save screen space
- Parameter randomization and locking
- Available in VST3 (windows and mac) and AU (mac only) formats
- Native support for ARM and Intel Macs


# System Requirements

- Windows 10 / macOS 10.11 or newer
- Host with VST3 support (64-bit)
- OpenGL 3 or higher


# Installation

## Windows

Copy the Emergence1 directory to your VST3 directory.
The system default on windows is: `c:\Program Files\Common Files\VST3\`.


## Mac

Run the Emergence1.pkg installer.
  
This will install both the VST3 and AU formats in the following location:
VST3: `/Library/Audio/Plug-Ins/VST3/Emergence1.vst3`
AU:   `/Library/Audio/Plug-Ins/Components/Emergence1.component`


# Contact

Please send your comments, suggestions, and questions to gergely.daniel1@gmail.com

If you like the plugin you can support my work here:
Patreon: https://www.patreon.com/daniel_gergely
Itch.io: https://daniel-gergely.itch.io/

When reporting a problem please include the following information:
- Expected behavior
- Current behavior
- Steps to reproduce the problem
- Name and version of your DAW
- Buffer size and track configuration
- Screenshot or video (if relevant)


# Disclaimer

This software is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.


# Changelog
  
## v1.0.2
  - Add button for randomizing parameters
  - Add parameter locking to avoid changing individual parameters when loading presets or triggering randomization
  - Disarm active modulator or parameter locking when clicking on empty area or the display
  
## v1.0.1
  - Reset grain stream position and randomizer output when changing presets
  - Fix incorrect time unit in the displayed tempo-synced parameter values after changing timebase
  - Limit the number of decimal places displayed for parameter values to 4

## v1.0.0
  - Add preset browser and factory presets
  - Add new modulators: Audio Input and Output
  - Add buttons to bypass individual modulations
  - Make modulation polarity parameter automatable
  - Allow fine mouse wheel control for knobs when the Ctrl, Cmd or Alt key is down
  - Add EULA to zip/installer
  - New UI layout
  - Add buttons to collapse stream and modulator sections, auto-resize window to fit contents
  - Add two more randomizers in the modulation section
  - Add controls for ADSR grain envelopes
  - Change default value of the Increment parameter to 0.0, increase parameter range
  - Change default timebase to Hz for lfo, randomizer and grain generation rate
  - Make transitions smoother when Freeze, Clear or Bypass is toggled
  - Add Position knob for controlling grain start position
  - Add more LFO shapes: triangle, square, saw up, saw down
  - Time-based parameters can be synchronized to the host tempo/beat
  - Add button to sync buffer write position to host playhead
  - Improve noise lfo waveform
  - VST3: Show parameter popup menu for pitch snap buttons (not available in every DAW)
  - Copying stream parameters now correctly copies the value and modulation of the balance parameter
  - Improve built-in help

## v0.3.1
- Modulation:
  - Add button to toggle between unipolar / bipolar modulation
  - Add buttons for triggering and clearing randomization manually
  - Make macro names editable and save custom names in project/presets
- UI:
  - Limit GUI size to fit on display when resized
- macOS:
  - Fix randomizer when running under rosetta and frequency is set to 0.0

## v0.3.0
- Audio
  - True stereo processing: both input channels are kept for dry and buffer signals
  - Add Balance knob for each stream to control which input channel is played by the grains
- UI
  - Improve waveform drawing
  - Add buttons to quantize grain pitch
- Modulation
  - Add frequency and probability controls for random modulators
  - Add an additional random modulator

## v0.2.2
- Modulation: Generate a different random value for each randomized parameter
- UI: Editor size preference is shared among all instances of the plugin
- UI: Add button to paste stream parameters with modulation
- UI: Fix parameters not being updated when dragging knobs with the right mouse
  button
- UI: Only show active modulations when a modulator button is hovered
- VST3: Fix potential crash when right-clicking knobs

## v0.2.1
- Stability: Fix potential crash when an instance of the plugin is created
- UI: Support displays smaller than 1080 pixels in height
- UI: Add buttons to scale the GUI
- UI: Improve knob layout
- Streams: Add buttons to copy and paste stream parameters

## v0.2.0
- macOS: add AU support
- Modulation: add LFOs and Macro knobs
- Modulation: improve parameter randomization
- UI: fade out waveform/grain visualization while not processing audio
- VST3: support host-provided context menus for parameter controls

## v0.1.1
- macOS: add VST3 support
